2012-10-15 19 views
24

Właśnie dokonałem akcyzy gzip na pytonie.Przeczytałem z pliku gzip w pytonie

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

Nie dostaję żadnego wyjścia na ekranie. Jako początkujący python, zastanawiam się, co powinienem zrobić, jeśli chcę odczytać zawartość pliku w pliku gzip. Dziękuję Ci.

+5

Spróbuj 'print open ('Onlyfinnaly.log.gz', 'rb'), read() dekodowania ('zlib')'.. Jeśli to nie zadziała, czy możesz potwierdzić, że plik zawiera coś? – Blender

+0

Tak, jestem całkowicie pewien, że istnieje plik o nazwie "Onlyfinally.log". I próbuję to zrobić, aby przeczytać zawartość i wybrać niektóre do przechowywania innego pliku. Ale zamienia tylko pustą linię na ekranie. – Michael

+1

Twój kod wygląda poprawnie, ale pamiętaj, że czytasz cały plik w ciągu znaków. Bardziej efektywnym sposobem jest zwykle czytanie strumienia gzip w porcjach i przetwarzanie ich pojedynczo. – Krumelur

Odpowiedz

31

Spróbuj gzipping jakieś dane przez libary gzip jak to ...

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

... następnie uruchomić kod jak pisał ...

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

Ta metoda działa na mnie jak na z jakiegoś powodu biblioteka gzip nie odczytuje niektórych plików.

+3

Nieco lepiej jest używać 'with' jak w odpowiedzi @ Arunava, ponieważ plik zostanie zamknięty, nawet jeśli wystąpi błąd podczas czytania (lub zapomnisz o tym). Jako bonus jest również krótszy. – Mark