我正在使用 stat 检查文件是否仍在传输,但它不起作用。如果我通过网络复制一个大文件(说数百 GB,它们可能需要几分钟)然后我运行脚本
from os import stat
from time import sleep
While True:
stat("thefile.foo")
sleep(2)
我希望看到时间或大小发生变化,但它保持不变。还有什么我可以用来检查文件是否仍在传输的吗?不幸的是,这是在 Windows 服务器上。
我尝试了这个脚本,以实际读取文件:
import sys
finished=False
oldgb=0
while not finished:
f=open(thefile,"rb")
samp=f.read(1)
gb=0
while samp!= b'':
sys.stdout.flush()
gb+=1000000000
f.seek(gb)
samp=f.read(1)
print(gb/1000000000,samp)
f.close()
print(oldgb, gb)
if gb>oldgb:
oldgb=gb
else:
finished=True
并注意到,在复制文件时,尚未复制的字节被初始化为零,因此文件大小没有更新。我可能会使用校验和来检查文件是否已更改。