Ich habe eine 1,4 GB Zip-Datei und versuche, jedes Mitglied in Folge zu liefern. Die Zip-Datei Modul hält eine BadZipfile Ausnahme zu werfen, die besagt, dassPython zipfile Modul denkt fälschlicherweise, ich habe eine Zip-Datei, die mehrere Festplatten umfasst, wirft BadZipfile Fehler
„zipfile.BadZipfile: ZipFiles, die über mehrere Datenträger erstrecken, werden nicht unterstützt“.
Hier ist mein Code:
import zipfile
def iterate_members(zip_file_like_object):
zflo = zip_file_like_object
assert zipfile.is_zipfile(zflo) # Here is where the error happens.
# If I comment out the assert, the same error gets thrown on this next line:
with zipfile.ZipFile(zflo) as zip:
members = zip.namelist()
for member in members:
yield member
fn = "filename.zip"
iterate_members(open(fn, 'rb'))
Ich bin mit Python 2.7.3. Ich habe auf Windows 8 und Ubuntu mit dem gleichen Ergebnis versucht. Jede Hilfe sehr geschätzt.
können Sie die Zip-Datei (oder einen Link zu ihr) posten? Der [Code, der zu diesem Fehler führt] (http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l176) ist ziemlich einfach; Es wird geprüft, ob der Dateiheader mehr als eine Platte deklariert oder die Plattennummer der Datei anders als Null ist. – phihag
Danke phihag. Leider kann ich die Datei nicht veröffentlichen, da sie vertrauliche Kundendaten enthält. – user1541702
Nun, können Sie eine Zip-Datei mit großen Testdaten generieren, die immer noch das Problem zeigt? – phihag