J'essaie de créer un fichier .csv avec les valeurs d'une liste Python. Lorsque j'imprime les valeurs de la liste, elles sont toutes unicode ( ?), c'est-à-dire qu'elles ressemblent à quelque chose comme ceci
[u'value 1', u'value 2', ...]
Si j'itère à travers les valeurs de la liste, c'est-à-dire for v in mylist: print v
ils semblent être du texte brut.
Et je peux mettre un ,
entre chaque avec print ','.join(mylist)
Et je peux faire une sortie vers un fichier, c'est à dire
myfile = open(...)
print >>myfile, ','.join(mylist)
Mais je veux faire une sortie vers un CSV et avoir des délimiteurs autour des valeurs dans la liste, par ex.
"value 1", "value 2", ...
Je n'arrive pas à trouver un moyen simple d'inclure les délimiteurs dans le formatage, par exemple, j'ai essayé par le biais de la fonction join
déclaration. Comment puis-je faire cela ?
0 votes
Merci à tous, j'ai combiné les idées de quelques réponses pour résoudre ma question :) J'utilise maintenant le module csv pour écrire les données [...] directement dans un fichier import csv data = [...] myfile = open(..., 'wb') out = csv.writer(open("myfile.csv", "w"), delimiter=',',quoting=csv.QUOTE_ALL) out. writerow(data) fonctionne bien, je construis mes data[] en extrayant des données d'une feuille de calcul à l'aide de xlrd et le module csv les écrit dans un fichier avec les bons délimiteurs ; tout va bien :) merci encore à vous tous.
1 votes
Une approche plus récente pourrait consister à utiliser pandas
0 votes
Pour les utilisateurs de Python 3.4, c'est ce qui a le mieux fonctionné pour moi : stackoverflow.com/questions/25022677/
1 votes
Voir aussi : Comment lire et écrire des fichiers CSV avec Python ?