Reading a remove csv file

Peter Otten __peter__ at web.de
Thu Nov 2 08:45:14 EDT 2017


ROGER GRAYDON CHRISTMAN wrote:

>  Just a quick question on how best to read a remote CSV file.
> So far, I tried:
> 
> filelink = urllib.request.urlopen(path)
> dictread = csv.DictReader(filelink)
> for row in dictread:    ...
> But I'm running into the difference between strings and bytes.
> I'd like to squeeze a note that talks about the utf-8 encoding,
> but although I find that as an option for a local file (with open())
> I did not see that on my first glance at the two functions above.
> 
> Is there an easy way to read a remove CSV file with utf-8 encoding
> without copying the whole file locally first?

Try wrapping the resqponse, it should be sufficiently file-like:

response = urllib.request.urlopen(...)
stream = io.TextIOWrapper(response, newline="", encoding="utf-8")
rows = csv.DictReader(stream)





More information about the Python-list mailing list