【发布时间】:2017-10-28 21:19:04
【问题描述】:
我在使用 python2 zipfile.ZipFile 提取 .zip 时遇到 BadZipfile: Bad magic number for file header 错误
使用 unzip 提取时,相同的 .zip 会给出 file #1: bad zipfile offset (local header sig): 0,但会使用退出代码 2 提取。
当使用jar -xf file.zip 时,命令以$? == 0 完成,没有任何内容被提取。
使用文件给出:
file -i file.zip
file.zip application/octet-stream; charset=binary
这为 zipfile 提供了不正确的标题
$ hexdump -C file.zip | head -10
00000000 50 67 f0 de 1e 7a 29 e4 93 56 3f 11 a2 5f b6 97 |Pg...z)..V?.._..|
正确的标题是:
00000000 50 4b 03 04 14 00 08 08 08 00 28 3e 4b 4b 00 00 |PK........(>KK..|
为什么文件被列为 application/octet-stream ?
我在
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
怎么了?这是什么文件格式?任何指针?
【问题讨论】:
-
您是否尝试过所有其他方式:
gzip、unzip? -
可能存档已损坏?
-
@RomanPerekhrest 解压后,我得到退出代码 2,但文件被提取。
-
file -i file.zip提供应用程序/八位字节流。为什么?
标签: python jar zip unzip zipfile