我正在寻找一种使用python提取多部分zip文件的方法(例如胡说八道,blah.z01、blah.z02、blah.z03等),无需任何先决条件安装(如7zip)。这个问题已经被问过了,但唯一的答案是使用本地7zip安装,我宁愿避免,而且我没有足够的声誉来添加评论到该线程。在
我正在开发一个独立的Windows桌面应用程序,它的主要功能之一是能够提取给它的zip文件。目前我正在使用一个随工具分发的可移植的7zip(7za)来实现这一点,但是由于一个新的情况,我还需要支持多部分的zip文件,我似乎无法做到这一点。在
我现在的代码是
subprocess.call('7za x -o"'+destinationPath+'" "'+zipPath+'"')
它适用于普通的拉链,但对于多部分拉链,什么都不会发生,通过cmd手动运行它,我得到了输出
^{pr2}$尽管桌面7zip完全可以使用完全相同的归档文件来完成这项工作。我是否遗漏了7za命令的语法?如果没有,除了要求用户确保他们安装了desktop 7zip并尝试通过注册表检测它的位置之外,还有其他选择吗?在
我也尝试过使用python的Zipfile库,但这让我
error: "BadZipFile: Bad magic number for file header"
正如另一条线所指出的。在
先谢谢你!在
考虑到您使用的是
subprocess.call()
,这听起来更像是bash问题而不是python问题。您可能希望cat
将各个部分放在一起而不是解压缩,如下所示:除了在多个
subprocess.call()
s中请看这里:https://unix.stackexchange.com/questions/40480/how-to-unzip-a-multipart-spanned-zip-on-linux
相关问题 更多 >
编程相关推荐