Lea el archivo .csv de la URL en Python 3.x - _csv.Error: el iterador debe devolver cadenas, no bytes (¿abrió el archivo en modo de texto?)

He estado luchando con este simple problema durante demasiado tiempo, así que pensé que pediría ayuda. Estoy tratando de leer una lista de artículos de revistas del sitio ftp de la Biblioteca Nacional de Medicina en Python 3.3.2 (en Windows 7). Los artículos de la revista están en un archivo .csv.

He intentado el siguiente código:

import csv
import urllib.request

url = "ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/file_list.csv"
ftpstream = urllib.request.urlopen(url)
csvfile = csv.reader(ftpstream)
data = [row for row in csvfile]

Da como resultado el siguiente error:

Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
data = [row for row in csvfile]
File "<pyshell#4>", line 1, in <listcomp>
data = [row for row in csvfile]
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

¿Supongo que debería estar trabajando con cadenas no bytes? Cualquier ayuda con el problema simple, y una explicación de lo que está mal sería muy apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta