如何在python中提取7z zip文件。请让我知道是否有任何库。
我在python 2.7.3版本中安装了libarchive库。但我无法使用该库。
答案 0 :(得分:3)
您可以使用PyLZMA
和py7zlib
库来提取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
尝试上述步骤