我制作了一个脚本,用于检测位于特定目录中的文件的更改。我正在尝试将所有这些更改写入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