Scheint, mich einen Anfänger Fehler zu klopfen, und ich bin kein Neuling. Ich habe eine 1.2G bekannt-gute zipfile 'train.zip' enthält eine 3.5G Datei 'train.csv'. Ich öffne die ZIP-Datei und die Datei selbst ohne Ausnahmen (keine LargeZipFile), aber der resultierende Filestream scheint leer zu sein. (UNIX 'unzip -c ...' bestätigt, dass es gut ist) Die Dateiobjekte, die von ZipFile.open() zurückgegeben werden, sind nicht seek'able oder tell'able, also kann ich das nicht überprüfen.Öffnen von zipfile von nicht unterstützten Komprimierungstyp gibt im Hintergrund leeren Filestream zurück, anstatt Ausnahme zu werfen
Python-Verteilung ist 2.7.3 EPD-frei 7.3-1 (32-Bit); aber sollte für große Reißverschlüsse in Ordnung sein. O ist MacOS 10.6.6
import csv
import zipfile as zf
zip_pathname = os.path.join('/my/data/path/.../', 'train.zip')
#with zf.ZipFile(zip_pathname).open('train.csv') as z:
z = zf.ZipFile(zip_pathname, 'r', zf.ZIP_DEFLATED, allowZip64=True) # I tried all permutations
z.debug = 1
z.testzip() # zipfile integrity is ok
z1 = z.open('train.csv', 'r') # our file keeps coming up empty?
# Check the info to confirm z1 is indeed a valid 3.5Gb file...
z1i = z.getinfo(file_name)
for att in ('filename', 'file_size', 'compress_size', 'compress_type', 'date_time', 'CRC', 'comment'):
print '%s:\t' % att, getattr(z1i,att)
# ... and it looks ok. compress_type = 9 ok?
#filename: train.csv
#file_size: 3729150126
#compress_size: 1284613649
#compress_type: 9
#date_time: (2012, 8, 20, 15, 30, 4)
#CRC: 1679210291
# All attempts to read z1 come up empty?!
# z1.readline() gives ''
# z1.readlines() gives []
# z1.read() takes ~60sec but also returns '' ?
# code I would want to run is:
reader = csv.reader(z1)
header = reader.next()
return reader
wissen Sie, wie Sie den Komprimierungstyp überprüfen, so können Sie den stillen Fehler antizipieren? –
@MartinTaleski: Ich habe einen Fehler, sie löste es, und Es wird jetzt NotImplementedError ausgelöst, wenn der Komprimierungstyp unbekannt ist. Sie könnten versuchen, das zu verstehen. EAFP-Philosophie. – smci