py3k: Como você lê um arquivo dentro de um arquivo zip como texto, não como byte

Um programa simples para ler um arquivo CSV dentro de um arquivo zip funciona no Python 2.7, mas não no 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?)

Então ocsv módulo @ no Python 3 deseja ver um arquivo de texto, maszipfile.ZipFile.open retorna umzipfile.ZipExtFile que é sempre tratado como dados binário

Como alguém faz isso funcionar em Python

questionAnswers(3)

yourAnswerToTheQuestion