Python で構築されたパーサーの一種のデーモン プロセスを作成したことがあります。一連のファイルを監視して Python で処理する必要があり、真のマルチ OS ソリューション (この場合は Windows と Linux) である必要がありました。ファイルの変更時刻をチェックしてファイルのリストを監視するプログラムを作成しました。プログラムはしばらくスリープ状態になり、監視対象のファイルの変更時刻を確認します。変更時刻が以前に登録された時刻よりも新しい場合、ファイルは変更されているため、このファイルを処理する必要があります。
このようなもの:
import os
import time
path = os.path.dirname(__file__)
print "Looking for files in", path, "..."
# get interesting files
files = [{"file" : f} for f in os.listdir(path) if os.path.isfile(f) and os.path.splitext(f)[1].lower() == ".src"]
for f in files:
f["output"] = os.path.splitext(f["file"])[0] + ".out"
f["modtime"] = os.path.getmtime(f["file"]) - 10
print " watching:", f["file"]
while True:
# sleep for a while
time.sleep(0.5)
# check if anything changed
for f in files:
# is mod time of file is newer than the one registered?
if os.path.getmtime(f["file"]) > f["modtime"]:
# store new time and...
f["modtime"] = os.path.getmtime(f["file"])
print f["file"], "has changed..."
# do your stuff here
一流のコードのようには見えませんが、非常にうまく機能します。
これについては他にも SO の質問がありますが、あなたの質問に対する直接的な回答が得られるかどうかはわかりません。
tail -Fに相当するpythonicを実装するには?
ファイルの変更を監視するにはどうすればよいですか?
ファイルの変更/変更を「監視」するにはどうすればよいですか?
お役に立てれば!