簡體   English   中英

如何查看目錄以進行文件修改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM