【问题标题】:calling a function depending on if a file was modified根据文件是否被修改调用函数
【发布时间】:2021-06-05 13:15:51
【问题描述】:

我有一些调用 3 个函数的 python (3.7) 代码。假设 func1、func2、func3,它们按顺序调用。

func2 运行很长时间 - 它从几个输入文件中获取一些数据,进行一些计算并将结果输出到一个单独的文件,然后由 func3 使用。

我想创建一个条件来检查上次修改输入文件的时间,如果自上次执行代码以来它们没有被修改,则跳过 func2。

编辑:注意输入文件与python代码分开修改。

我不太确定如何创建此条件。我发现模块 Doit 看起来应该可以工作,但不明白如何将它集成到我的代码中。 还有其他模块可以帮助我吗?或者解释一下在这种情况下如何使用 Doit?

【问题讨论】:

  • 什么会修改文件?如果正在编辑文件,您是否可以从 1 调用函数 2?
  • 输入文件与python代码分开更新。
  • 您的问题带有makefile 标签。你在使用makefile吗?如果是这样,那么func2制作的文件的名称是什么?

标签: python python-3.x dependencies


【解决方案1】:

os 模块中有一个os.path.getmtime 函数,它返回最后一次修改文件的时间
您可以在此处阅读更多信息:
https://docs.python.org/3/library/os.path.html#os.path.getmtime

【讨论】:

  • 感谢您的回复。如何将此与上次调用该函数的时间进行比较?
  • 据我了解,执行func1后需要检查文件是否被修改。如果是这样,那么您可以在执行func1之前保存os.path.getmtime(filename)的结果,然后在执行func2之前,您应该再次调用os.path.getmtime(filename)并将其与保存的结果进行比较上一次通话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多