使用python 3提取7z文件

cod*_*000 7 python 7zip lzma python-3.x

我试图使用 python 解压缩 7z 文件,但我似乎无法弄清楚。我想我可以在 python 3 中使用 lzma 模块,但我似乎无法弄清楚:

我认为它会像 zipfile 包一样工作:

import lzma
with lzma.open('data.7z') as f:
    f.extractall(r"<output path>")
Run Code Online (Sandbox Code Playgroud)

但在阅读文件后,似乎没有。所以这是我的问题:如何使用标准包提取 7z 文件?我不想调用 subprocess 来使用 7-zip 解压缩文件,因为我不能保证用户安装了这个软件。

我搜索了互联网和堆栈 oerflow 并注意到所有答案几乎都回到使用子处理上,我想像瘟疫一样避免这种情况。

虽然在 stackoverflow 上也有类似的问题,但答案仍然取决于 7-zip 或 7zip SDK。我不想使用 7-zip sdk/exe 进行提取,因为这假设用户已安装该软件。

这是 7z 文件中的属性:

在此处输入图片说明

Mat*_*Dnv 9

试试这个怎么样?:

from pyunpack import Archive
Archive('data.7z').extractall("<output path>")
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,在“pip install pyunpack”和“pip install patool”之后,效果非常好! (3认同)