2014-04-15 5 views
5

Ich muss Python 2.7 verwenden, weil ich die Boto-Bibliothek verwende und Boto3 ist experimentell. Ich muss eine Datei lesen, die gezippt wird und Zeilen werden durch Zeilenumbrüche beendet. Using python 3.3 Es scheint, dass Sie einfach die Newline-Variable in gzip.open angeben können. Was wäre der sauberste und immer noch effizienteste Weg, dies in Python 2.7 zu tun.Wie durchlaufen Sie eine gzipped Wagenrücklauf-Datei mit Python 2.7?

Antwort

9

Sie könnten io Modul probieren die gzip-Datei als Text Zeile für Zeile mit Universal-Zeilenumbrüche Unterstützung zu lesen:

import gzip 
import io 

with io.TextIOWrapper(io.BufferedReader(gzip.open(filename))) as file: 
    for line in file: 
     print line, 
+0

Ja das funktioniert gut! Ich danke dir sehr. – thekkid

+0

io.TextIOWrapper (io.BufferedReader (gzip.open (DateiPfad)), encoding = 'utf8', errors = 'ignorieren') unterstützt sogar Codierung und Fehlerbehandlung. Danke! – Yurik

+0

Das 'GzipFile' mit' BufferedReader' zu verpacken, ist das, was das funktioniert! Vielen Dank, ich war stecken geblieben und versuchte, 'readlines()' auf einem 'TextIOWrapper' zu verwenden! – ebolyen