python - 在不解压缩的情况下找出解压缩存档的结果大小。或超过一定尺寸时停止拆包

标签 python linux archive 7zip rar

我需要在不解压的情况下验证解压存档的结果大小,以防止在我的服务器上存储大量存档。 或者开始拆包,当尺寸超过一定尺寸时,停止拆包。 我已经尝试过 lib pyunpack,但它只允许解包存档。 需要验证此类存档扩展名: rarzip7ztar。 也许我可以通过 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.tartar -tvzf FILENAME.tgz(或 .tar.gz) 列出每个文件的详细信息,包括文件大小。未提供总大小,因此您需要自己将它们相加。

如果您正在查看 native python 库,您还可以检查它们是否具有“列表”或“测试”功能。这些是命令行工具用来描述我上面提到的开关的术语,因此库作者可能使用了相同的名称。

关于python - 在不解压缩的情况下找出解压缩存档的结果大小。或超过一定尺寸时停止拆包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38767584/

相关文章:

javascript - 如何从使用 javascript 生成的工具提示中抓取文本

Python数组id值

Python3 判断两个字典是否相等

c - 为什么我们不能在 Linux 中通过 system() 系统调用更改目录?

css - 侧边栏在 Wordpress 存档页面上的行为不同

python - 在字符串上使用 .translate() 去除数字 [Python 3]

linux - 应用程序哈希客户端的 MAC 地址和计算机名称以及其他计算机属性以创建唯一 ID

linux - Bash 函数在作业暂停时压缩 'jobs' 的输出

python - 如何在python中压缩文件夹和文件?

Linux 删除超过 1 年的文件夹和超过 3 个文件