【发布时间】:2013-12-27 21:08:25
【问题描述】:
我有一个 Python 函数,它充当要添加到文件夹(来自外部进程)的文件的“侦听器”。
我目前正在使用无限循环执行此操作,在该循环中我检查文件大小是否停止增加(表示文件已完成放置在文件夹中,python 函数的其余部分可以继续打开文件) .
file_size = 0
while True:
file_info = os.stat(file_path)
if file_info.st_size == 0 or file_info.st_size > file_size:
file_size = file_info.st_size
sleep(1)
else:
break
这行得通,但我知道这是一个 hack。每秒轮询增加的 file_size 并不是最好的方法。
还有其他方法可以使用Python 来确定文件复制(来自外部进程)是否已完成?
【问题讨论】:
-
请看看这是否有帮助:stackoverflow.com/questions/6825994/…
-
您可以控制这个外部进程吗?通常将文件复制到临时文件,然后在完成后重命名以处理这种情况。
-
在写入文件时,它可能已被锁定。也许您可以使用
poixfile模块检查其状态(或自己锁定)。
标签: python file filesystems