описывает лучший способ, который работает в Python 3.2.

ая программа для чтения файла CSV внутри zip-файла работает в Python 2.7, но не в Python 3.2

$ cat test_zip_file_py3k.py 
import csv, sys, zipfile

zip_file    = zipfile.ZipFile(sys.argv[1])
items_file  = zip_file.open('items.csv', 'rU')

for row in csv.DictReader(items_file):
    pass

$ python2.7 test_zip_file_py3k.py ~/data.zip

$ python3.2 test_zip_file_py3k.py ~/data.zip
Traceback (most recent call last):
  File "test_zip_file_py3k.py", line 8, in <module>
    for row in csv.DictReader(items_file):
  File "/home/msabramo/run/lib/python3.2/csv.py", line 109, in __next__
    self.fieldnames
  File "/home/msabramo/run/lib/python3.2/csv.py", line 96, in fieldnames
    self._fieldnames = next(self.reader)
_csv.Error: iterator should return strings, not bytes (did you open the file 
in text mode?)

Так чтоcsv Модуль в Python 3 хочет видеть текстовый файл, ноzipfile.ZipFile.open возвращаетzipfile.ZipExtFile это всегда рассматривается как двоичные данные.

Как заставить это работать в Python 3?

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

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