특정 디렉토리에있는 파일의 변경 사항을 감지하는 스크립트를 생성했습니다. 이 모든 변경 내용을 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