Comment lire et écrire des fichiers CSV avec Python?
J'ai un fichier example.csv
avec le contenu
1,"A towel,",1.0
42," it says, ",2.0
1337,is about the most ,-1
0,massively useful thing ,123
-2,an interstellar hitchhiker can have.,3
Comment puis-je lire ce example.csv
avec Python?
De la même façon, si j'ai
data = [(1, "A towel,", 1.0),
(42, " it says, ", 2.0),
(1337, "is about the most ", -1),
(0, "massively useful thing ", 123),
(-2, "an interstellar hitchhiker can have.", 3)]
Comment puis-je écrire data
vers un fichier CSV avec Python?
Ceci est destiné à être un canonique question comme je viens de le trouvé beaucoup de doublons qui encadrent la question différemment, mais sont essentiellement cette question.
Exemples de dupes: stackoverflow.com/questions/5788521/... stackoverflow.com/questions/26903304/... stackoverflow.com/questions/1593318/... stackoverflow.com/questions/24662571/python-import-csv-to-list stackoverflow.com/questions/34568774/... stackoverflow.com/questions/14725020/read-csv-file-from-python stackoverflow.com/questions/16283799/... ...
Plus de doublons venir quand vous faites une recherche google pour "python lire csv stackoverflow"
Exemples de dupes: stackoverflow.com/questions/5788521/... stackoverflow.com/questions/26903304/... stackoverflow.com/questions/1593318/... stackoverflow.com/questions/24662571/python-import-csv-to-list stackoverflow.com/questions/34568774/... stackoverflow.com/questions/14725020/read-csv-file-from-python stackoverflow.com/questions/16283799/... ...
Plus de doublons venir quand vous faites une recherche google pour "python lire csv stackoverflow"
OriginalL'auteur Martin Thoma | 2017-01-11
Vous devez vous connecter pour publier un commentaire.
Voici quelques minimes exemples complets comment lire les fichiers CSV et écrire des fichiers CSV avec Python.
Python 2+3: Lecture d'un fichier CSV
Pur Python
Après cela, le contenu de
data_read
sontUnicode et Python 2.X
Si vous voulez écrire Unicode, vous devez installer
unicodecsv
. Ne pas ouvrir le fichier aveccodecs.open
mais simplement avecopen
. Écrire avecLiées
mpu
Jeter un oeil à mon package utilitaire
mpu
pour un super simple et facile à retenir:Pandas
Voir
read_csv
docs pour plus d'informations. Veuillez noter que les pandas déduit automatiquement si il y a une ligne d'en-tête, mais vous pouvez la régler manuellement, trop.Si vous n'avez pas entendu parler de Seaborn, je vous recommande de jeter un oeil sur elle.
Autres
La lecture des fichiers CSV est pris en charge par un tas d'autres bibliothèques, par exemple:
dask.dataframe.read_csv
spark.lire.csv
Créé fichier CSV
Fichier commun terminaisons
.csv
De travail avec les données
Après la lecture du fichier CSV pour une liste de tuples /dicts ou une Pandas dataframe, c'est tout simplement de travailler avec ce type de données. Rien CSV spécifiques.
Alternatives
Pour votre application, les éléments suivants pourraient être importantes:
Voir aussi: Comparaison des formats de sérialisation de données
Dans le cas où vous êtes plutôt à la recherche d'un moyen de faire des fichiers de configuration, vous pouvez lire mon article court Les fichiers de Configuration en Python
csv
lui-même pour la lecture?C'est une possibilité. Cependant, je préfère les Pandas: (1) Il gère automatiquement les en-têtes (2) il charge le fichier directement à partir de la voie et ne pas s'attendre à un pointeur de fichier (3) il y a mieux à "l'exportation" des options (comme le dict à l'exportation - oui, vous pouvez le faire avec CSV, trop. Mais les Pandas est plus simple). Mais n'hésitez pas à poster une solution n'a pas besoin de Pandas 🙂
Merci, je me demandais parce que vous avez utilisé
csv
pour l'écriture. Je préfèrecsv
oupandas
pour les deux, etcsv
surpandas
parce qu'il est plus susceptible d'être déjà là.Ok, j'ai ajouté un pur
csv
solution (qui est maintenant également compatible avec mes autres réponses à d'autres formats de fichiers YAML et JSON)Merci!!!! Je n'étais pas au courant. J'ai corrigé!
OriginalL'auteur Martin Thoma
L'écriture d'un fichier CSV
Vous devez d'abord importer csv
Pour exemple:
OriginalL'auteur Syed Abdul Rehman
Pas sûr de ce que cela ajoute plus de l'existant répondre
OriginalL'auteur Siddharth Kumar Shukla