J'ai une longue liste de listes de la forme suivante ---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
c'est-à-dire que les valeurs de la liste sont de types différents - float, int, strings.Comment puis-je l'écrire dans un fichier csv pour que mon fichier csv de sortie ressemble
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Réponses:
Le module CSV intégré de Python peut gérer cela facilement:
Cela suppose que votre liste est définie comme
a
telle dans votre question. Vous pouvez modifier le format exact du CSV de sortie via les divers paramètres facultatifscsv.writer()
comme indiqué dans la page de référence de la bibliothèque liée ci-dessus.Mise à jour pour Python 3
la source
Vous pouvez utiliser
pandas
:la source
pandas
si la bibliothèque intégréecsv
peut le faire.documents officiels: http://docs.python.org/2/library/csv.html
la source
writerow
ne prend pas plusieurs arguments.Si , pour quelque raison que vous vouliez le faire manuellement (sans utiliser un module comme
csv
,pandas
,numpy
etc.):Bien sûr, lancer votre propre version peut être source d'erreurs et inefficace ... c'est généralement pourquoi il existe un module pour cela. Mais parfois, écrire les vôtres peut vous aider à comprendre comment ils fonctionnent, et parfois c'est simplement plus facile.
la source
L'utilisation de csv.writer dans ma très grande liste a pris un certain temps. J'ai décidé d'utiliser des pandas, c'était plus rapide et plus facile à contrôler et à comprendre:
La bonne partie, vous pouvez changer quelque chose pour créer un meilleur fichier csv:
la source
La solution Ambers fonctionne également bien pour les tableaux numpy:
la source
Si vous ne souhaitez pas importer de
csv
module pour cela, vous pouvez écrire une liste de listes dans un fichier csv en utilisant uniquement des modules intégrés Pythonla source
Assurez-vous d'indiquer
lineterinator='\n'
lors de la création de l'écrivain; sinon, une ligne vide supplémentaire pourrait être écrite dans le fichier après chaque ligne de données lorsque les sources de données proviennent d'un autre fichier csv ...Voici ma solution:
la source
Que diriez-vous de vider la liste de la liste dans pickle et de la restaurer avec le module pickle ? C'est assez pratique.
la source
J'ai reçu un message d'erreur en suivant les exemples avec un paramètre de nouvelle ligne dans la fonction csv.writer. Le code suivant a fonctionné pour moi.
la source