Muszę używać Pythona 2.7, ponieważ używam biblioteki boto, a boto3 jest eksperymentalna. Muszę przeczytać plik, który jest spakowany gzipem, a linie kończą się zwrotami karetki. Używanie python 3.3 Wygląda na to, że możesz po prostu podać zmienną newline w pliku gzip.open. Jaki byłby najczystszy i nadal skuteczny sposób na to w python 2.7.W jaki sposób następuje iteracja za pomocą spakowanego pliku powrotu karetki przy użyciu Pythona 2.7?
5
A
Odpowiedz
9
można spróbować moduł io
odczytać pliku tekstowego gzipped jako linia po linii z uniwersalnym nowymi liniami wsparcia:
import gzip
import io
with io.TextIOWrapper(io.BufferedReader(gzip.open(filename))) as file:
for line in file:
print line,
Tak to działa świetnie! Dziękuję bardzo. – thekkid
io.TextIOWrapper (io.BufferedReader (gzip.open (filePath)), encoding = 'utf8', errors = 'ignore') obsługuje nawet kodowanie i obsługę błędów. Dzięki! – Yurik
Owijanie 'GzipFile' przez' BufferedReader' jest tym, co naprawdę sprawia, że to działa! Dziękuję bardzo, utknąłem próbując uzyskać 'readlines()' do pracy na 'TextIOWrapper'! – ebolyen