Cette question est étiquetée python-2.x
Il ne semblait donc pas correct de modifier la question originale, ou la réponse acceptée. Cependant, Python 2 n'est maintenant plus supporté, et cette question a toujours un bon jus de google pour "python csv urllib", donc voici une solution mise à jour pour Python 3.
Il est maintenant nécessaire de décoder urlopen
La réponse de l'utilisateur (en octets) est convertie en un encodage local valide. réponse acceptée doit être légèrement modifié :
import csv, urllib.request
url = 'http://winterolympicsmedals.com/medals.csv'
response = urllib.request.urlopen(url)
lines = [l.decode('utf-8') for l in response.readlines()]
cr = csv.reader(lines)
for row in cr:
print(row)
Notez la ligne supplémentaire commençant par lines =
le fait que urlopen
est maintenant dans le urllib.request
module, et print
nécessite bien sûr des parenthèses.
C'est à peine annoncé, mais oui, csv.reader
peut lire à partir d'une liste de chaînes de caractères.
Et puisque quelqu'un d'autre a mentionné les pandas, voici une ligne simple pour afficher le CSV dans une sortie conviviale pour la console :
python3 -c 'import pandas
df = pandas.read_csv("http://winterolympicsmedals.com/medals.csv")
print(df.to_string())'
(Oui, c'est trois lignes, mais vous pouvez le copier-coller comme une seule commande ;)