提取与Python多部分拉链

问题描述 投票:0回答:1

我正在寻找Windows上的方式来使用Python来提取多部分的zip文件(例如blah.zip,blah.z01,blah.z02,blah.z03等)没有任何先决条件的安装(如7zip的)。这个问题已经被问了,不过唯一的答案有说要使用本地7zip的安装,我宁愿逃避,我没有足够的信誉评论添加到该线程。

我正在开发使用python的主要功能独立的Windows桌面应用程序,并能够提取给它的压缩文件,其主要特征之一的重要组成部分。目前,我用的工具,但由于新的情况我还需要支持多部分的zip文件分发的便携式7zip的(7za)这样做,我似乎无法做到这一点。

我当前的代码很简单

subprocess.call('7za x -o"'+destinationPath+'" "'+zipPath+'"')

这适用于正常的拉链,但对于多部分拉链没有任何反应,并通过在cmd我得到的输出手动运行它

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的zip文件库还试图但这让我的

error: "BadZipFile: Bad magic number for file header"

如其他线程指出。

提前谢谢了!

python zip multipart zipfile 7zip
1个回答
0
投票

这听起来更像是一个比一个蟒蛇问题bash的问题,考虑到你使用subprocess.call()。你可能希望将部分cat在一起比解压缩,就像这样:

cat test.zip.* >test.zip
unzip test.zip

除了在多个subprocess.call()s。

在这里看到:https://unix.stackexchange.com/questions/40480/how-to-unzip-a-multipart-spanned-zip-on-linux

© www.soinside.com 2019 - 2024. All rights reserved.