【发布时间】:2014-03-01 18:10:17
【问题描述】:
我是 Python 新手,我正在尝试实现良好的“文件创建”检测。如果我不放time.sleep(x) 我的文件会以错误的方式详细说明,因为它们仍在文件夹中“创建”。 (缓冲区不为空)
每次创建文件时,如何在不等待x 秒的情况下绕过这个问题?
这是我的代码:
主要:
while 1:
if len(parser()) > 0: # arguments are valid
if len(parser()) == 3:
log_path = parser()['log_path']
else:
log_path = os.getcwd()
paths = parser()
if paths:
handler = Event_Handler()
observer = Observer()
observer.schedule(handler, paths['src_fld'], True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
else:
exit(1)
Event_Handler 类:
class Event_Handler(FileSystemEventHandler):
def on_created(self, event):
if not event.is_directory:
time.sleep(1)
正如我所说,如果没有 time.sleep(1),如果我尝试处理一个大文件,我会失败,因为它还没有完全写入。
【问题讨论】:
-
这不是办法。使用这个pyinotify.sourceforge.net
-
Watchdog 是跨平台的,因此更适合。
-
没有
close_written事件?