特定のディレクトリにあるファイルの変更を検出するスクリプトを作成しました。私はこれらすべての変更をchanges.txt
ファイルに書き込もうとしています。この目的のために私はsys.stdout = open('changes.txt','w')
命令を使用しています。ファイルの変更を検出してファイルに書き込む
問題は、スクリプトを実行してディレクトリ内のファイルを変更して保存するときに、changes.txt
という空のファイルが作成されるという問題です。このファイルは決して書き込まれません!
#!/usr/bin/python
import time
import sys
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
sys.stdout = open('changes.txt','w')
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
print "something happened!"
if __name__ == "__main__":
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='.', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
ファイルを定期的に開き、 'f.write()'をそれだけで開いてみませんか? –
あなたのプリント機能を書き直すほうがいいかもしれません。それ以外の場合は、一般に、スクリプトの出力を格納するために、 'python.py> changes.txt'を使用します。 –
それは複雑です... @NilsWerner – adaminspaceship