如何知道文件是否被压缩

时间:2018-05-16 16:09:57

标签: python compression gzip tar gz

从一组文件中,我创建了一个tar文件,并从tar文件中创建了一个tar.gz文件(使用python)。

创建压缩文件可能需要一些时间,因此:

我想知道是否有办法知道"创建压缩文件的过程"是"正在进行"。

也许通过某些临时文件或类似文件进行检查?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用python创建gzip文件(可能在另一个线程中),这样您就可以知道文件的创建时间(甚至可以获得进度指示器)

写入块和进度报告,因为每当你将一大块文件写入压缩输出时你就得到了控制权(那里有更高级的进度条,我会做一个简单的打印):

import gzip,shutil,os

input_file = "input.tar"
input_size = os.path.getsize(input_file)
chunk_size = 100000
written = 0

with open(input_file,"rb") as fr,gzip.open(input_file+".gz","wb") as fw:
    chunk = fr.read(chunk_size)
    fw.write(chunk)
    written += chunk.size()
    print("Progress {} bytes out of {}".format(written,input_size))

另一种解决方案是使用tarfile库的gzip输出模式,并对正在写入/留下的文件使用进度条进行写入(知道如果文件是不同大小)