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