我无法使用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
。这是怎么回事?
答案 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)