在python中提取.zip

Posted

技术标签:

【中文标题】在python中提取.zip【英文标题】:Extracting .zip in python 【发布时间】: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

怎么了?这是什么文件格式?任何指针?

【问题讨论】:

您是否尝试过所有其他方式:gzipunzip 可能存档已损坏? Bad magic number error with ZipFile module in Python的可能重复 @RomanPerekhrest 解压后,我得到退出代码 2,但文件被提取。 file -i file.zip 提供应用程序/八位字节流。为什么? 【参考方案1】:

你试过了吗?

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

【讨论】:

那么这可能会有所帮助[programcreek.com/python/example/3149/zipfile.BadZipfile]

以上是关于在python中提取.zip的主要内容,如果未能解决你的问题,请参考以下文章

Flask+uwsgi+Nginx环境搭建

python中如何从字符串中提取数字?

在python中提取.zip

python进行数据库查询中怎么把结果提取出来,跪谢

在 Python 中从 PDF 中提取超链接

在 Python 中提取 URL