【发布时间】:2014-08-30 21:40:27
【问题描述】:
我想监视一个文件夹并查看是否添加了任何新文件或修改了现有文件。问题是,不能保证我的程序会一直运行(因此,基于inotify 的解决方案可能不适合这里)。我需要缓存上次扫描的状态,然后在下一次扫描时,我需要在处理文件之前将其与上次扫描进行比较。
在 Python 2.7 中实现此目的的替代方法是什么?
注意1:文件的处理成本很高,因此我正在尝试处理同时未修改的文件。所以,如果文件只是被重命名(而不是文件内容的改变),我也想检测到并跳过处理。
注意2:我只对Linux解决方案感兴趣,但如果添加其他平台的答案,我不会抱怨。
【问题讨论】:
-
如果你能保证你的程序将一直运行,那么它会比在它不运行时存储,然后尝试重新扫描更改要简单得多......
-
@JonClements 是的,但不幸的是这是不可能的。基本上,用户决定程序何时运行。这就是程序的本质。
-
只需创建一个包含文件名和最后修改日期的字典(您可以使用
os.stat()获取),然后将其写入文件并在每次运行时获取它
标签: python python-2.7 inotify