Ho un file zip da 1,4 GB e sto provando a cedere ogni membro in successione. Il modulo zipfile continua a lanciare un'eccezione BadZipfile, affermando cheIl modulo zipfile Python pensa erroneamente di avere un file zip che si estende su più dischi, genera errore BadZipfile
"zipfile.BadZipfile: zipfiles che si estendono su più dischi non sono supportati".
Ecco il mio codice:
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'))
sto usando Python 2.7.3. Ho provato su Windows 8 e su Ubuntu con lo stesso risultato. Qualsiasi aiuto è molto apprezzato.
potete inserire il file zip (o un link ad esso)? Il [codice che porta a questo errore] (http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l176) è piuttosto semplice; controlla se l'intestazione del file dichiara più di un disco o il numero di disco del file diverso da zero. – phihag
Grazie a phihag. Purtroppo non posso pubblicare il file poiché contiene dati client riservati. – user1541702
Bene, puoi generare un file zip con grandi dati di test che mostra ancora il problema? – phihag