我正在寻找一种使用Python在Windows上提取多部分zip文件(例如blah.zip,blah.z01,blah.z02,blah.z03等)的方法,而不需要任何预先安装的软件(如7zip)。这个问题已经被问过了,但是唯一的答案是使用本地的7zip安装,我宁愿避免这样做,而且我没有足够的声望在那个线程中添加评论。
我正在使用Python开发一个独立的Windows桌面应用程序,主要功能使用Python实现,其中一个重要功能的一个重要部分是能够提取给定的zip文件。目前,我使用随工具分发的便携式7zip(7za)来完成这个任务,但由于新情况的出现,我还需要支持多部分zip文件,但似乎无法做到。
我的当前代码只是:
我正在使用Python开发一个独立的Windows桌面应用程序,主要功能使用Python实现,其中一个重要功能的一个重要部分是能够提取给定的zip文件。目前,我使用随工具分发的便携式7zip(7za)来完成这个任务,但由于新情况的出现,我还需要支持多部分zip文件,但似乎无法做到。
我的当前代码只是:
subprocess.call('7za x -o"'+destinationPath+'" "'+zipPath+'"')
这段代码适用于普通的zip文件,但对于多部分zip文件则无法正常工作。通过手动在命令提示符中运行,可以得到输出结果。
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: zipname.zip
Error: Can not open file as archive
虽然桌面版7zip完全可以使用相同的存档文件来完成此操作。我是否在7za命令的语法方面遗漏了什么?如果没有,除了要求用户确保安装了桌面版7zip并尝试通过注册表等方式检测其位置之外,是否还有其他替代方法?
我还尝试使用Python的Zipfile库,但结果是:
error: "BadZipFile: Bad magic number for file header"
正如其他帖子所指出的那样。
非常感谢您提前的帮助!