J'essaie d'ajouter une nouvelle ligne à mon ancien fichier csv. Fondamentalement, il est mis à jour chaque fois que j'exécute le script Python.
En ce moment, je stocke les anciennes valeurs de lignes csv dans une liste, puis je supprime le fichier csv et le recrée avec la nouvelle valeur de liste.
Je voulais savoir s'il y avait de meilleures façons de le faire.
Je préfère cette solution en utilisant le
csv
module de la bibliothèque standard et l'with
instruction pour éviter de laisser le fichier ouvert.Le point clé utilise
'a'
pour l'ajout lorsque vous ouvrez le fichier.Si vous utilisez Python 2.7, vous pouvez rencontrer de nouvelles lignes superflues dans Windows. Vous pouvez essayer de les éviter d'utiliser
'ab'
au lieu de'a'
cela, cependant, vous causera TypeError: un objet de type octets est requis, pas 'str' en python et CSV en Python 3.6. L'ajout denewline=''
, comme le suggère Natacha, vous causera une incompatibilité vers l'arrière entre Python 2 et 3 .la source
Basé sur la réponse de @GM et en faisant attention à l'avertissement de @John La Rooy, j'ai pu ajouter une nouvelle ligne ouvrant le fichier en
'a'
mode.Je n'ai pas essayé avec l'écrivain habituel (sans le Dict), mais je pense que ça ira aussi.
la source
Ouvrez-vous le fichier avec le mode «a» au lieu de «w»?
Voir Lecture et écriture de fichiers dans les documents python
la source
Si le fichier existe et contient des données, il est possible de générer automatiquement le
fieldname
paramètre pourcsv.DictWriter
:la source
la source
Je poursuis de cette façon pour ajouter une nouvelle ligne dans un fichier .csv:
la source