3

システム上のすべてのファイルの情報を保存するプログラムを Python で作成しています。インストールすると、すべてのファイルをウォークオーバーしますが、その後、新しいファイルが作成されるたびに、またはファイルが移動されるたびに更新したいと考えています。たとえば、Dropbox サービスでは、Dropbox ディレクトリにファイルをコピーするたびに、すぐにそれを認識してサーバーにアップロードします。

ポーリングせずにPythonでこれを行う方法はありますか? ファイルが作成されたときにトリガーされるある種のイベントリスナーについて考えています。

4

1 に答える 1

2

次のいずれかを試してください。

最初の方が使いやすいと思います。使用例(サイトより):

import watcher
w = watcher.Watcher(dir, callback)
w.flags = watcher.FILE_NOTIFY_CHANGE_FILE_NAME
w.start()

watcher は、システム API をラップするモジュールであり、MSDN で説明されています。

http://msdn.microsoft.com/en-us/library/aa365465(v=vs.85).aspx

したがって、フラグwatcher.FILE_NOTIFY_CHANGE_FILE_NAMEは、次のことについて通知されることを示しています。

監視対象のディレクトリまたはサブツリーでファイル名が変更されると、変更通知の待機操作が返されます。変更には、ファイルの名前変更、作成、または削除が含まれます。

于 2012-05-06T21:14:19.437 に答える