[英]How to watch directory for file modifications
我在Mac上。 我一直在使用Launchd的WatchPaths指令來查看文件更改的目錄。 我的腳本僅在從監視目錄中添加或刪除文件時觸發。
但是,修改文件時不會觸發腳本。
基本上,我正在嘗試創建一個DIY Dropbox來同步我的Sites文件夾。
有沒有辦法通過launchd,bash或python來做到這一點?
我認為linux有類似inotify的東西,但我不知道mac的解決方案。
我嘗試使用MacFSEvents包(也可以在PyPI上使用)來解決問題:
import os
from fsevents import Observer, Stream
def callback(file_event):
print file_event.name # the path of the modified file
def main():
observer = Observer()
observe_path = os.getcwd() # just for this example
stream = Stream(callback, observe_path, file_events=True)
observer.start()
observer.schedule(stream)
if __name__ == '__main__':
main()
這將在創建,修改或刪除文件時調用callback
(您可以使用file_event.mask
的值檢查發生了哪個事件)。
請注意,您可能希望在主線程之外的線程上觀察(上述程序拒絕退出,即使在KeyboardInterrupt
)。 有關API的更多信息,請參閱MacFSEvents README。 希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.