2012-10-15 12 views
24

में एक gzip फ़ाइल से पढ़ें मैंने अभी पायथन पर gzip का excises बना दिया है।पायथन

import gzip 
f=gzip.open('Onlyfinnaly.log.gz','rb') 
file_content=f.read() 
print file_content 

और मुझे स्क्रीन पर कोई आउटपुट नहीं मिलता है। पायथन के शुरुआती के रूप में, मुझे आश्चर्य है कि अगर मैं gzip फ़ाइल में फ़ाइल की सामग्री को पढ़ना चाहता हूं तो मुझे क्या करना चाहिए। धन्यवाद।

+5

कोशिश 'प्रिंट खुला ('Onlyfinnaly.log.gz', 'rb') को पढ़ने के() को डिकोड ('zlib')'।। अगर यह काम नहीं करता है, तो क्या आप पुष्टि कर सकते हैं कि फ़ाइल में कुछ है? – Blender

+0

हाँ, मुझे पूरा यकीन है कि एक फ़ाइल है जिसका नाम 'Onlyfinally.log' है। और मैं जो करने की कोशिश कर रहा हूं वह सामग्री को पढ़ना है और कुछ अन्य फाइलों को स्टोर करने के लिए कुछ चुनना है। लेकिन यह स्क्रीन पर केवल रिक्त रेखा को बदल देता है। – Michael

+1

आपका कोड सही दिखता है, लेकिन ध्यान रखें कि आप पूरी फ़ाइल को स्ट्रिंग में पढ़ रहे हैं। आमतौर पर भाग में gzip स्ट्रीम को पढ़ने और उन्हें एक समय में संसाधित करने का एक और अधिक प्रभावी तरीका है। – Krumelur

उत्तर

31

इस तरह gzip पुस्तकालय के माध्यम से कुछ डेटा gzipping का प्रयास करें ...

import gzip 
content = "Lots of content here" 
f = gzip.open('Onlyfinnaly.log.gz', 'wb') 
f.write(content) 
f.close() 

... पोस्ट के रूप में तो अपने कोड चलाने ...

import gzip 
f=gzip.open('Onlyfinnaly.log.gz','rb') 
file_content=f.read() 
print file_content 

इस विधि के लिए के रूप में मेरे लिए काम किया कुछ कारण gzip लाइब्रेरी कुछ फ़ाइलों को पढ़ने में विफल रहता है।

+3

@ अरुणवा के उत्तर में 'साथ' का उपयोग करना थोड़ा बेहतर है, क्योंकि फ़ाइल को तब भी बंद कर दिया जाएगा जब पढ़ने के दौरान त्रुटि होती है (या आप इसके बारे में भूल जाते हैं)। बोनस के रूप में यह भी छोटा है। – Mark