3

我正在尝试编写一个在 Windows 上运行的 Python 脚本。文件每隔几秒就会被复制到一个文件夹,我每 30 秒轮询一次该文件夹,以获取上次轮询后复制到该文件夹​​的新文件的名称。

我尝试的是使用其中一个os.path.getXtime(folder_path)函数并将其与我之前民意调查的时间戳进行比较。如果 getXtime 值大于时间戳,那么我将处理这些文件。

我曾尝试使用该函数os.path.getctime(folder_path),但这不起作用,因为文件是在我编写脚本之前创建的。我也尝试os.path.getmtime(folder_path)过,但修改时间通常小于轮询时间戳。

最后,我尝试os.path.getatime(folder_path)了第一次将文件复制过来的方法。问题是一旦文件在文件夹中,我也会读取它们,因此访问时间会不断更新,我最终会一遍又一遍地读取相同的文件。

我不确定有什么更好的方法或功能来做到这一点。

4

1 回答 1

1

您在这里遇到了一些XY 问题。您想知道文件夹中的文件何时更改,您尝试了 homerolled 解决方案,但它不起作用,现在您想修复 homerolled 解决方案。

我可以建议您使用现有的用于监视文件更改的软件包,而不是可怕的黑客行为吗?一个不是轮询循环,但实际上在发生更改时会收到通知?虽然inotify仅适用于 Linux,但还有其他适用于 Windows 的选项

于 2017-02-18T02:01:49.443 回答