我需要在不解压的情况下验证解压存档的结果大小,以防止在我的服务器上存储大量存档。
或者开始拆包,当尺寸超过一定尺寸时,停止拆包。
我已经尝试过 lib pyunpack
,但它只允许解包存档。
需要验证此类存档扩展名:
rar
、zip
、7z
、tar
。
也许我可以通过 os.system
调用它们来使用一些 linux 特性。
最佳答案
我不能给你一个原生的 python 答案,但是,如果你需要回到 os.system
,处理所有四种格式的命令行实用程序有可以使用的开关列出存档的内容,包括每个文件的大小和可能的总大小:
rar
:unrar l FILENAME.rar
列出了每个文件的信息和总大小。zip
:unzip -l FILENAME.zip
列出每个文件的大小、时间戳和名称,以及总大小。7z
:7z l FILENAME.7z
列出每个文件的详细信息和总大小。tar
:tar -tvf FILENAME.tar
或tar -tvzf FILENAME.tgz
(或.tar.gz
) 列出每个文件的详细信息,包括文件大小。未提供总大小,因此您需要自己将它们相加。
如果您正在查看 native python 库,您还可以检查它们是否具有“列表”或“测试”功能。这些是命令行工具用来描述我上面提到的开关的术语,因此库作者可能使用了相同的名称。
关于python - 在不解压缩的情况下找出解压缩存档的结果大小。或超过一定尺寸时停止拆包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38767584/