使用Python提取7z控制台SFX(.exe)文件而不使用子进程?

时间:2015-03-27 20:28:29

标签: python 7zip zipfile lzma

我正在使用python 3.4

我有一个抓取工具,它正在提取7z控制台SFX文件,我希望以编程方式提取它们。

目前我只能通过子进程调用来实现:

import subprocess
seven_zip = r"C:\Program Files\7-Zip\7z.exe"
tempfile = r"temp.exe" # SFX Archive
subprocess.call(seven_zip + ' x ' + tempfile + ' -aoa')

这是有问题的,因为此脚本的用户可能没有安装7zip,或者可能将其安装在不同的目录中。此外,运行子进程并不能直接访问提取的项目,例如运行正常的zFile提取。我可以通过解压缩到一个临时目录然后解析所述目录中的文件来解决这个问题,但这很麻烦。

我在想那里有一种用Python提取7z控制台SFX文件的方式(也许是pylzma的东西?),但我似乎无法找到任何问题这里的主题。

更新:我使用py7zlib的成功仍然有限。我再次注意到这是为了提取SFX(可执行)档案,而不是.7z档案。也许有一个py7zlib的应用程序用于这样的文件,但我找不到任何例子。

0 个答案:

没有答案