我正在使用 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 应用程序,但我找不到任何示例。