我有两段代码,它们都打算做同样的事情——坐在一个循环中,直到一个文件被写入完成。它们都主要用于通过 FTP/SCP 传入的文件。
代码的一个版本使用os.stat()[stat.ST_SIZE]
:
size1,size2 = 1,0
while size1 != size2:
size1 = os.stat(file_name)[stat.ST_SIZE]
time.sleep(300)
size2 = os.stat(file_name)[stat.ST_SIZE]
另一个版本是这样的os.path.getsize()
:
size1,size2 = 0,0
while True:
size2 = os.path.getsize(file_name)
if size1 == size2:
break
else:
time.sleep(300)
size1 = size2
我见过多个使用第一种方法报告大小相同的实例,而文件实际上仍在增长。是否有一些根本原因os.stat()
会错误地报告而os.path.getsize()
不会?我没有看到任何错误或异常回来。