在多次迭代中,报告从其他位置传输的大文件的文件大小错误或相同。
目标:要通过跟踪大小来检查文件是否在增长,如果文件大小稳定,则可以启动/执行文件上的其他功能。
import os,sys,time
MAXCHECKCOUNT = 6
def checkgrow(filepath):
oldfilesize = -1
tries = 0
while True:
#to reset
filesize = os.stat(filepath).st_size
# filesize = readFile(filepath)
print (filesize)
if oldfilesize == filesize:
# time.sleep(1)
if tries >= MAXCHECKCOUNT:
print("file not growing anymore")
break
else:
print ("trying for %d time" %(tries))
tries += 1
else:
tries=0
oldfilesize = filesize
def readFile(filepath):
filesize = 0
with open(filepath) as handle:
handle.seek(0,os.SEEK_END)
filesize = handle.tell()
return filesize
观察:
- 报告的文件大小相同,即使正在复制文件且文件大小不断增长,程序也会退出。
- 如果我们引入睡眠1秒钟,这似乎起作用,并且跟踪开始起作用。
- 尝试了os.stat和os.path.getsize和.tell()这两种方法都具有如上所述的缺点。
- 尝试刷新文件系统并中提琴全部开始工作,因为似乎存在与fiesystem高速缓存或任何其他获取实时文件大小更改的方法有关的问题,所以有任何功能可以使文件系统高速缓存失效。
期望:跟踪文件大小/修改时间,从其他位置复制正在增长的文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。