通过跟踪python中文件的大小来跟踪文件是否正在增长正在从其他位置复制文件

在多次迭代中,报告从其他位置传输的大文件文件大小错误或相同。

目标:要通过跟踪大小来检查文件是否在增长,如果文件大小稳定,则可以启动/执行文件上的其他功能

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高速缓存或任何其他获取实时文件大小更改的方法有关的问题,所以有任何功能可以使文件系统高速缓存失效。

期望:跟踪文件大小/修改时间,从其他位置复制正在增长的文件

相关文章

在前一篇博客中我们介绍了加侧旋的乒乓球弧圈技术的模拟,本...
在近期conda的版本更新中,有可能会删除路径下的_sysconfigd...
本文主要展示了一些lambda表达式的使用示例,通过这些示例,...
本文通过对比Jax和Numpy计算Normalized Hamming Distance的过...
我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比...
Numpy这个库在Python编程中非常的常用,不仅在性能上补足了P...