Konwertuj strumień wejściowy binarny na tryb tekstowy

Próbuję odczytać plik CSV skompresowany za pomocą bzip2 w Pythonie 3.2. W przypadku nieskompresowanego pliku CSV działa to:

<code>datafile = open('./file.csv', mode='rt')
data = csv.reader(datafile)
for e in data:    # works
    process(e)
</code>

Problemem jestBZ2File obsługuje tylko tworzenie strumienia binarnego, iw Pythonie 3,csv.reader akceptuje tylko strumienie tekstowe. (Ten sam problem występuje w przypadku plików gzip i zip.)

<code>datafile = bz2.BZ2File('./file.csv.bz2', mode='r')
data = csv.reader(datafile)
for e in data:    # error
    process(e)
</code>

W szczególności wskazana linia zgłasza wyjątek_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?).

Próbowałem teżdata = csv.reader(codecs.EncodedFile(datafile, 'utf8')), ale to nie naprawia błędu.

Jak mogę zawinąć binarny strumień wejściowy, aby mógł być używany w trybie tekstowym?

questionAnswers(1)

yourAnswerToTheQuestion