1
我有一组由应用程序创建的100个文件。这些文件不是以顺序方式动态更新的。使用Python,我试图读取这些文件。但是,我不知道哪个文件在什么时候得到更新。Python触发文件更改事件
我不希望每个时间循环遍历每个文件,以检查在实例中更新哪些文件。我可以创建多个进程/线程来触发主进程更新哪个文件。是否有任何其他方式像文件更新可以通知主要的Python进程,以便只有这些文件被读取?
谢谢。
我有一组由应用程序创建的100个文件。这些文件不是以顺序方式动态更新的。使用Python,我试图读取这些文件。但是,我不知道哪个文件在什么时候得到更新。Python触发文件更改事件
我不希望每个时间循环遍历每个文件,以检查在实例中更新哪些文件。我可以创建多个进程/线程来触发主进程更新哪个文件。是否有任何其他方式像文件更新可以通知主要的Python进程,以便只有这些文件被读取?
谢谢。
尝试python模块“看门狗”。它将启动一个文件或文件夹观察器,可用于启动文件/文件夹更改功能。 https://pypi.python.org/pypi/watchdog
下面的例子将观察一个文件夹,并通知其中的文件的每一个变化。如果您只想要特定事件,请参阅文档。是不是在同一个文件夹中创建 https://pythonhosted.org/watchdog/api.html#watchdog.events.FileSystemEventHandler
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class EventHandler(FileSystemEventHandler):
def on_any_event(self, event):
print event
if __name__ == "__main__":
path = "/PATH/TO/YOUR/FOLDER"
event_handler = EventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
的所有文件。它们是在不同的文件夹中创建的,所以我需要创建100个观察者。 – wonder
这些文件夹是否位于文件系统的所有文件夹中,还是都位于一个特定于应用程序的顶层目录中? – JonasR
他们都有一个特定的顶层目录。 – wonder