एक नई समस्या से मेरा सिर खटखटाते हुए लगता है और मैं नौसिखिया नहीं हूं। मेरे पास 1.2 जी ज्ञात-अच्छा ज़िपफाइल 'train.zip' है जिसमें 3.5 जी फ़ाइल 'train.csv' है। मैं ज़िपफाइल खोलता हूं और बिना किसी अपवाद के फ़ाइल करता हूं (लार्जज़िपफाइल), लेकिन परिणामी फाइलस्ट्रीम खाली प्रतीत होता है। (यूनिक्स 'unzip -c ...' यह पुष्टि करता है कि यह अच्छा है) ZipFile.open() द्वारा लौटाई गई फ़ाइल ऑब्जेक्ट्स खोजने योग्य नहीं हैं या बताए जा सकते हैं, इसलिए मैं इसे जांच नहीं सकता।असमर्थित संपीड़न-प्रकार के ज़िपिंग को खोलने के लिए चुपचाप खाली filestream देता है, अपवाद फेंकने के बजाय
पायथन वितरण 2.7.3 ईपीडी मुक्त 7.3-1 (32-बिट); लेकिन बड़े ज़िप के लिए ठीक होना चाहिए। ओएस 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
क्या आप जानते हैं कि संपीड़न प्रकार की जांच कैसे करें, ताकि आप चुप विफलता की उम्मीद कर सकें? –
@MartinTaleski: मैंने एक बग दायर किया, उन्होंने इसे हल किया, और संपीड़न प्रकार अज्ञात होने पर अब यह NotImplementedError उठाता है। आप कोशिश कर सकते हैं .. पकड़ो। पकड़ो। EAFP दर्शन। – smci