0
私は、Pythonのウォッチドッグモジュールを使用してファイルシステムの変更を聞き取ろうとしています。私は2つの異なるディレクトリからファイルを監視したい。 1つのファイルウォッチについては、PatternMatchingEventHandler
をwatchdog.events
から使用しました。私は複数のディレクトリに同じものを使用したい。2つの異なるディレクトリにあるファイルのPythonウォッチドッグ
コード:上記のコードで
import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
class EventHandler(PatternMatchingEventHandler):
def on_modified(self, event):
super(EventHandler, self).on_modified(event)
print event
if __name__ == "__main__":
dir_name = ["/home/user1/first", "/home/user1/second"]
observer = Observer()
patterns = ["/home/user1/first/first.log","/home/user1/second/second.log")]
for i in xrange(len(dir_name)):
event_handler = EventHandler(patterns = patterns[i])
observer.schedule(event_handler, dir_name[i], recursive=True)
observer.start()
try:
while True:
time.sleep(0.1)
except KeyboardInterrupt:
observer.stop()
、私は複数のディレクトリ観測フォーマットを行うと、ファイルごとにイベントハンドラを作成しようとしました。それは私のために働いていない。私がここで紛失しているものはありますか?これを行う方法は何ですか?
ありがとうございました。
:
EDIT
は、以下のこのコードを試してみてください。それはどのように役立つでしょうか? – wonder
私が知っているところでは、コードと呼ばれるスレッドをブロックするので、プログラムは終了するまで(この場合はCtrl-Cで)無期限に実行されます。詳細はこちら[こちら](http://pythonhosted.org/watchdog/api.html#watchdog.utils.BaseThread.join)。それは黒い画面として目立つことに注意してください:プログラムが動作するかどうかを見ることができるようにいくつかの変更を加えます(出力されます)。 – RompePC
それは正しいです。しかし、ファイルが両方のディレクトリで定期的に変更されても、何も印刷されません。すべてのオブザーバースケジューラーに対して 'join()'を実行しようとしました。しかし、それは私を助けていない。 – wonder