gpt4 book ai didi

python - 使用 Python 提取多部分 zip

转载 作者:行者123 更新时间:2023-12-04 17:40:37 24 4
gpt4 key购买 nike

我正在寻找一种在 Windows 上使用 python 提取多部分 zip 文件(例如 blah.zip、blah.z01、blah.z02、blah.z03 等)的方法,而无需任何先决条件安装(如 7zip)。已经有人问过这个问题,但唯一的答案是使用我宁愿避免的本地 7zip 安装,而且我没有足够的声誉向该线程添加评论。

我正在开发一个独立的 Windows 桌面应用程序,使用 python 作为主要功能,其主要功能之一的重要部分是能够提取提供给它的 zip 文件。目前,我正在使用随该工具分发的可移植 7zip (7za) 执行此操作,但由于新情况,我还需要支持多部分 zip 文件,但我似乎无法做到这一点。

我目前的代码很简单

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

这适用于普通 zipper ,但对于多部分 zipper 没有任何 react ,通过 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 的 Zipfile 库,但这让我得到了一个
error: "BadZipFile: Bad magic number for file header"

正如另一个线程所指出的那样。

提前谢谢了!

最佳答案

考虑到您正在使用 subprocess.call(),这听起来更像是 bash 问题而不是 python 问题。 .您可能想要 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

关于python - 使用 Python 提取多部分 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54639881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com