【问题标题】:Is there an equivalent of gzip.open() for .7z files?.7z 文件是否有等效的 gzip.open() ?
【发布时间】:2013-09-23 00:26:11
【问题描述】:

我必须经常搜索几个 .7z(用 LZMA 压缩)文件。我没有足够的内存将它们同时解压缩或将存档更改为 .gz。现在我解压一个,搜索我需要的,删除提取的,解压下一个。我想以与 gzip 相同的方式浏览档案:

f = gzip.open('archive.gz')
for i in f:
    do stuff

是否有使用 .7z 文件执行此操作的模块/方法?

【问题讨论】:

  • 不幸的是,没有处理 7z 文件的模块。您可能希望使用subprocess 模块从 7z 获取输出并根据需要进行处理:subprocess.getoutput( '7z l archive.7z' )

标签: python windows archive 7zip


【解决方案1】:

在 Python >= 3.3 中有一个内置模块:http://docs.python.org/3.3/library/lzma

PyPI 上还有一个模块的反向移植:https://pypi.python.org/pypi/backports.lzma

(如果你在 Windows 上并且不想自己编译它,你可以使用来自Unofficial Windows Binaries for Python 的 PyLZMA 包)。

【讨论】:

  • 请注意,虽然 7z 使用 LZMA 作为其主力来执行压缩,但 7z 和 LZMA 不是一回事。我已经在this post中详细解释了这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
相关资源
最近更新 更多