Parece que me estoy quitando la cabeza de un error de principiante y no soy un novato. Tengo un archivo comprimido zip conocido 1.2G 'train.zip' que contiene un archivo 3.5G 'train.csv'. Abrí el archivo zip y el archivo sin excepciones (no LargeZipFile), pero la extensión de archivos resultante parece estar vacía. (UNIX 'unzip -c ...' confirma que es bueno) Los objetos de archivo devueltos por ZipFile.open() no son buscables o no, por lo que no puedo verificarlo.Al abrir el archivo zip del tipo de compresión no compatible se devuelve silenciosamente la cadena de archivos vacía, en lugar de arrojar la excepción
La distribución de Python es 2.7.3 EPD-free 7.3-1 (32-bit); pero debería estar bien para cremalleras grandes. OS es 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
¿sabe cómo verificar el tipo de compresión, para que pueda anticipar la falla silenciosa? –
@MartinTaleski: archivé un error, lo resolvieron y ahora aumenta NotImplementedError cuando se desconoce el tipo de compresión. Se puede 'intentar ... capturar 'esa. Filosofía de EAFP – smci