Python 3.5没有打开zip文件

时间:2017-02-03 04:27:16

标签: python zipfile

我无法使用Python zipfile工具打开从this URL下载的文件。

此文件 使用Mac的内置deflater打开,然而python-magic(通过import magic; magic.from_file("..."))报告该文件为:

'Zip archive data, at least v2.0 to extract'

然而,当我这样做时:

with open("498200/Broadband Data Dig - Datasets/NYC Connected Broadband Data Dig Files.zip") as fp:
    zipcontent = zipfile.ZipFile(fp)

我明白了:

BadZipFile: File is not a zip file

我的Python版本是3.5.2。这是怎么回事?

2 个答案:

答案 0 :(得分:4)

zipfile.ZipFile claims compatibility with file-like objects,但几乎可以肯定它们是二进制模式,而不是文本模式。

要进行最小修改,请尝试:

with open("498200/Broadband Data Dig - Datasets/NYC Connected Broadband Data Dig Files.zip",
          "rb") as fp:
    zipcontent = zipfile.ZipFile(fp)

或者正如Trey所提到的,只需直接在with上使用zipfile.ZipFile('name/of/file.zip')语句,而无需先将其作为普通文件打开。

答案 1 :(得分:3)

ZipFile根据文件名打开文件:

with zipfile.ZipFile("498200/Broadband Data Dig - Datasets/NYC Connected Broadband Data Dig Files.zip") as zip_file:
    print("do stuff with", zip_file)