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

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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...