如何在Python 2.7.3中解压7z文件

4 投票
5 回答
22905 浏览
提问于 2025-04-30 02:36

怎么用Python提取7z压缩文件?请问有没有什么库可以做到这一点。

我在Python 2.7.3版本上安装了libarchive库,但我不知道怎么使用这个库。

暂无标签

5 个回答

-2

首先,你需要在你的电脑上安装一个叫做 p7zip 的工具,这个工具可以帮助你解压缩文件。你可以通过输入以下命令来安装它:

!apt-get install p7zip-full

安装完成后,你可以用这个工具来解压一个名为 file_name.tar.7z 的文件,输入的命令是:

!p7zip -d file_name.tar.7z

试试上面的步骤吧!

0

这个在Windows上对我有效。你想要的字符串大概是这样的:

C:/Egain_ETL/7-Zip/7z.exe e "C:/Egain_ETL/EG_DATA_EXTRACT_2017-11-25 09-45-10-627.7z" -p"Dev@123" -o"C:/Egain_ETL/"

注意,调用exe和选项是没有用引号括起来的,而其他的部分都是用双引号括起来的。

示例代码

import subprocess

Z_Location = 'C:/Egain_ETL/7-Zip/7z.exe'
Extract_File = 'C:/Egain_ETL/EG_DATA_EXTRACT_2017-11-25 09-45-10-627.7z'
Extract_PW = 'Dev@123'
Extact_Folder = 'C:/Egain_ETL/'

Extract_Target = Z_Location + ' e ' + '"' + Extract_File + '"' + ' -p' + '"' + Extract_PW + '"' + ' -o' + '"' + Extact_Folder + '"'

subprocess.run(Extract_Target)
0

根据Python文档(关于子进程),你可能更想使用推荐的函数run(就像这个例子中那样)。

from subprocess import run
run('C:\\Program Files\\7-Zip\\7zG.exe x'+ archive_name + ' -o' + folder_name_to_extract)`

PS0:有一个建议,别忘了在完整路径中转义字符;这在Windows系统下特别有用。否则操作系统可能找不到7zip(或者其他程序)。

PS1:显然,评论写起来有点困难……显示效果不一样(比如所有文字都挤在一行里),而且按下回车键后,帖子就会发布(还没写完)。stackoverflow.com的系统有问题,因为我只是想加几行,而不是发布它。而且因为不,我当时还没写完(这个帖子)。

3

我在我的C++项目中使用这样的命令:C:\Program Files\7-Zip\7z.exe x <filename>。你也可以在Python中这样运行:

import subprocess
subprocess.call(r'"C:\Program Files\7-Zip\7z.exe" x ' + archive_name + ' -o' + folder_name_to_extract)

或者使用32位版本:

subprocess.call(r'"C:\Program Files (x86)\7-Zip\7z.exe" x ' + archive_name + ' -o' + folder_name_to_extract)
5

你可以使用 PyLZMApy7zlib 这两个库来解压 7z 文件,或者你也可以尝试用 Python 的 subprocess 模块来执行一些命令行脚本,从而解压 zip 文件。

撰写回答