我有一个应用程序,它会在新文件出现在特定目录中时运行。 为此,我使用 nncron(Windows 的 cron),一个示例
#(
500 VALUE MonitorDirTimeout
WatchDir: "c:\directory" WatchSubtree
WATCH-CHANGE-LAST-WRITE
Action:
StartIn: "c:\directory"
SWHide NormalPriority
START-APP: c:\app.py
)#
我想使用事件驱动编程和Twisted,并且想在目录中出现新文件时执行回调。 当然我可以用LoopingCall监控目录,但它不是事件驱动的。
最佳答案
我没有做足够多的窗口来获得直接的解决方案,但您可以通过在构成给定 react 器/事件循环的系统调用中搜索所需的事件来找到自己的方法。 (即搜索操作系统级别的 API 文档,不要将搜索限制为 python 或 twisted)
来自 twisted reactor docs我看到 WFMO 和 IOCP 是 Windows react 器中使用的系统框架。如果你能找到解释如何在目录更新时触发这些事件系统中的任何一个的 Windows 文档,那么应该有一种直接的方式来触发(而不必轮询)扭曲,但如果你可能需要编写一些接口(interface)代码这个领域的第一个。
顺便说一句,在这个 SO 中有一系列(非扭曲的)想法:How do I watch a file for changes using Python? ,最直接相关的是:Watch a Directory for Changes
关于python - Twisted:目录中新文件的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999084/