gpt4 book ai didi

Python tarfile 大小

转载 作者:行者123 更新时间:2023-11-28 17:50:54 27 4
gpt4 key购买 nike

我可以用这种方式计算 tarfile 中文件的大小:

import tarfile
tf = tarfile.open(name='my.tgz', mode='r')
reduce(lambda x,y: getattr(x, 'size', x)+getattr(y,'size',y), tf.getmembers())

但返回的总大小是 tarfile 中元素的总和,而不是压缩文件的大小(至少这是我通过尝试相信的)。有没有办法在不通过 os.path.getsize 之类的东西检查的情况下获取整个 tar 文件的压缩大小?

最佳答案

没有。

tar.gz 的工作方式是通过 gzip 管道传输文件以获得普通的 tar 存档。 tar(1) 不知道压缩文件首先被压缩,所以它不知道压缩后的大小[*]。

这与 ZIP 等自行压缩的存档格式不同。

tar 方法的优点是您可以使用任何您喜欢的压缩方式。如果出现更好的压缩器,您可以轻松地重新打包您的文件。此外,由于所有内容都放入一个大数据流中,压缩率稍微好一些,并且文件名等元数据也被压缩。

缺点是您必须在存档文件中查找才能解压单个项目。

[*]:tar(1) 的第一个实现没有 -z 选项;它是后来人们开始大量使用 gzip 时添加的。早期的标准压缩是使用compress 得到tar.Z

关于Python tarfile 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com