title: Read .csv file from URL into Python 3.x - _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
body: <p>I've been struggling with this simple problem for too long, so I thought I'd ask for help. I am trying to read a list of journal articles from National Library of Medicine ftp site into Python 3.3.2 (on Windows 7). The journal articles are in a .csv file. </p>
  
  <p>I have tried the following code:</p>
  
  <pre><code>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]
  </code></pre>
  
  <p>It results in the following error:</p>
  
  <pre><code>Traceback (most recent call last):
  File "&lt;pyshell#4&gt;", line 1, in &lt;module&gt;
  data = [row for row in csvfile]
  File "&lt;pyshell#4&gt;", line 1, in &lt;listcomp&gt;
  data = [row for row in csvfile]
  _csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
  </code></pre>
  
  <p>I presume I should be working with strings not bytes? Any help with the simple problem, and an explanation as to what is going wrong would be greatly appreciated.</p>