如何在Python 2.7.3版本中提取7z zip文件

时间:2014-10-28 07:49:19

标签: python extract 7zip

如何在python中提取7z zip文件。请让我知道是否有任何库。

我在python 2.7.3版本中安装了libarchive库。但我无法使用该库。

5 个答案:

答案 0 :(得分:3)

您可以使用PyLZMApy7zlib库来提取7z文件或尝试执行shell脚本以使用python subprocess模块提取zip文件。

答案 1 :(得分:2)

我在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)

答案 2 :(得分:0)

根据Python doc (about the subprocess),您可能更愿意使用推荐的功能运行(例如在此示例中)。

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

PS0:一个adivce,不要忘记在完整路径中逃避角色;它可以在Windows下特别有用。否则操作系统找不到7zip(或其他程序)。

PS1:显然,评论很难写......显示不一样(就像只在一行中组合所有文字一样)并通过触摸输入,帖子将被公布(未完成)。来自stackoverflow.com的系统是错误的,因为我只想添加几行而不发布它。还因为没有,目前我还没写完(这篇文章)。

答案 3 :(得分: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和options的调用是不加引号的,其他所有内容都是双引号。

示例代码

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)

答案 4 :(得分:0)

!apt-get install p7zip-full !p7zip -d file_name.tar.7z

尝试上述步骤