在python中提取.zip

时间:2017-10-28 21:19:05

标签: python jar zip unzip zipfile

使用python2 BadZipfile: Bad magic number for file header提取.zip时出现zipfile.ZipFile错误

使用解压缩提取时,相同的.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

怎么回事?这是什么文件格式?有什么指针吗?

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

import zipfile
zip_ref = zipfile.ZipFile(path_to_zip_file, 'r')
zip_ref.extractall(directory_to_extract_to)
zip_ref.close()