如何在Python 2.7.3中解压7z文件
怎么用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
你可以使用 PyLZMA
和 py7zlib
这两个库来解压 7z
文件,或者你也可以尝试用 Python 的 subprocess
模块来执行一些命令行脚本,从而解压 zip 文件。