Преобразовать двоичный поток ввода в текстовый режим

Я пытаюсь прочитать сжатый bzip2 CSV-файл в Python 3.2. Для несжатого CSV-файла это работает:

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

Проблема в том, чтоBZ2File only supports creating a binary streamи в Python 3,csv.reader accepts only text streams, (Та же проблема возникает с файлами gzip и zip.)

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

В частности, указанная строка выдает исключение_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?).

Я также пыталсяdata = csv.reader(codecs.EncodedFile(datafile, 'utf8')), но это не исправляет ошибку.

Как я могу обернуть поток двоичного ввода, чтобы он мог использоваться в текстовом режиме?

Ответы на вопрос(1)

Ваш ответ на вопрос