从一组文件中,我创建了一个tar文件,并从tar文件中创建了一个tar.gz文件(使用python)。
创建压缩文件可能需要一些时间,因此:
我想知道是否有办法知道"创建压缩文件的过程"是"正在进行"。
也许通过某些临时文件或类似文件进行检查?
由于
答案 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输出模式,并对正在写入/留下的文件使用进度条进行写入(知道如果文件是不同大小)