Comment ajouter une nouvelle ligne à CSV Python

Comment ajouter une nouvelle ligne à CSV Python
Dans cet article, nous allons explorer les méthodes pour ajouter des données nouvellement créées dans un fichier CSV existant. Les modules CSV fournissent deux méthodes pour écrire le fichier CSV, qui sont:
  1. Écrivain
  2. Dictor

Nous allons utiliser ces méthodes d'écriture CSV pour ajouter nos données nouvellement créées dans un fichier CSV existant.

Méthode 1: Utilisation de la méthode CSV Writer ()

Dans cette méthode, nous allons utiliser la méthode écrivain () du CSV pour ajouter les données nouvellement créées au CSV.

Fichier csv: Le fichier CSV ci-dessous (test.csv) Nous serons utilisés pour ajouter une nouvelle ligne.

Mois, 1958 1959 1960
Janvier 340,360 417
318 342 391 février
Mars, 362 406 419
348 396 461 avril
Janvier 340,360 417
318 342 391 février

De l'écrivain d'importation CSV

De l'écrivain d'importation CSV
# Cette fonction qui ajoute de nouvelles données de ligne dans un fichier CSV existant
Def APPENDNEWROW (CSVFileName, ElementStoAPPEnd):
# Ouvrez le fichier CSV en mode annexe
avec Open (CSVFileName, 'A +', newline = ") AS APPEND_OBJ:
# a créé un objet d'écrivain à partir du module d'écrivain
APPEND_WRITE = écrivain (APPEND_OBJ)
# l'objet écrivain créé qui écrit une nouvelle ligne au CSV
APPEND_WRITE.Writerow (ElementStoappend)
# Liste de nouveaux éléments que nous voulons ajouter
newrow = ["déc", 337, 405, 432]
# appelant une fonction qui accepte deux paramètres de fichier CSV et de nouvelles données de ligne
APPENDNEWROW ('Test.CSV ', Newrow)

Sortir:

Mois, 1958 1959 1960
Janvier 340,360 417
318 342 391 février
Mars, 362 406 419
348 396 461 avril
Janvier 340,360 417
318 342 391 février
Dec, 337 405 432

Ligne 1: Nous importons le module d'écrivain.

Ligne 4 à 10: Nous avons créé une fonction nommée «APPENDNEWROW» qui accepte deux paramètres (le nom du fichier CSV existant et les données). Nous ouvrons le fichier CSV (fichier CSV existant) avec le mode annexe ('A'), afin que nous puissions ajouter nos nouvelles données au fichier CSV. Pour cela, nous avons créé un objet (append_writer) à partir du module d'écrivain. Et dans la ligne suivante, nous appelons Method Writerrow à partir de l'objet APPEND_WRIRT pour ajouter les données au CSV.

Lignes 13 et 15: Nous avons créé une nouvelle liste de données que nous souhaitons ajouter à un fichier CSV existant. Dans la ligne 15, nous appelons la fonction «APPENDNEWROW» et passant deux paramètres (le nom du fichier CSV existant et les données).

Maintenant, nous allons ajouter des données où certaines données sont manquantes.

Dans l'exemple précédent, nous avons vu qu'il n'y a pas de valeur de colonne manquante dans les données nouvellement créées. Mais que se passera-t-il si nous avons une valeur de colonne manquante? Ainsi, même si nous avons une valeur de colonne manquante, le module d'écrivain du CSV n'a pas de méthode pour vérifier que toutes les valeurs de colonnes sont présentes dans les données ou non.

# Liste de nouveaux éléments que nous voulons ajouter
newrow = ["déc", 337, 432]
# appelant une fonction qui accepte deux paramètres de fichier CSV et de nouvelles données de ligne
APPENDNEWROW ('Test.CSV ', Newrow)

Sortir:

Mois, 1958 1959 1960
Janvier 340,360 417
318 342 391 février
Mars, 362 406 419
348 396 461 avril
Janvier 340,360 417
318 342 391 février
Dec, 337 405 432
Dec, 337 432

Nous avons créé un nouvel ensemble de données où une valeur de colonne est manquante. Ainsi, lorsque nous exécutons le programme d'exemple ci-dessus, il donne un résultat simple, comme indiqué dans la sortie ci-dessus. Mais dans la sortie elle-même, nous pouvons voir que la valeur 405 manque. En conséquence, le module d'écrivain CSV n'a pas de méthode pour déterminer toute valeur de colonne manquante.

Ainsi, si nous voulons ajuster la valeur sage de la colonne appropriée des données nouvellement créées, même s'il y a des valeurs manquantes, nous devons transmettre une valeur de chaîne vide avec les données, comme ci-dessous:

newrow = ["dec", 337, ", 432]

Le cas ci-dessus n'est pas un gros problème car il ne s'agit qu'une seule rangée de données, mais lorsque nous avons des milliards de lignes, nous ne pouvons pas gérer de telles situations avec la méthode d'ajout de chaîne vide. Parce qu'alors ça deviendra un travail très fastidieux.

Méthode 2: Utilisation de la méthode dictWriter ()

Dans cette méthode, nous allons discuter de la méthode DictWriter () pour ajouter les données nouvellement créées au CSV. La méthode dictWriter () a également la facilité pour déterminer quelle valeur de colonne est manquante car il s'agit d'une méthode basée sur le dictionnaire et si une valeur de clé est vide, elle gardera automatiquement la chaîne vide.

Fichier csv: Nous utilisons le même fichier CSV (test.CSV) comme nous l'avons utilisé dans les exemples précédents.

# Cette fonction qui ajoute de nouvelles données de ligne dans un fichier CSV existant
Def APPENDNEWROW (CSVFileName, ElementStoAPPEnd):
# Ouvrez le fichier CSV en mode annexe
avec Open (CSVFileName, 'A +', newline = ") AS APPEND_OBJ:
# a créé un objet d'écrivain à partir du module d'écrivain
append_writer = dictWriter (append_obj,
FieldNames = [«Mois», «1958», «1959», «1960»]))
# l'objet écrivain créé qui écrit une nouvelle ligne au CSV
APPEND_WRITE.Writerow (ElementStoappend)
# Liste de nouveaux éléments que nous voulons ajouter
newrow = "mois": "dec", "1958": "337", "1959": "405", "1960": "432"
# appelant une fonction qui accepte deux paramètres de fichier CSV et de nouvelles données de ligne
APPENDNEWROW ('Test.CSV ', Newrow)

Sortir:

Mois, 1958 1959 1960
Janvier 340,360 417
318 342 391 février
Mars, 362 406 419
348 396 461 avril
Janvier 340,360 417
318 342 391 février
Dec, 337 405 432

Ligne 1: Nous importons la méthode DictWriter.

Ligne 4 à 12: Nous avons créé une fonction nommée «APPENDNEWROW» qui accepte deux paramètres (le nom du fichier CSV existant et les données). Nous ouvrons le fichier CSV (existant) avec le mode annexe ('A'), afin que nous puissions ajouter nos nouvelles données de dict au fichier CSV. Ensuite, nous passons l'en-tête du CSV sous la forme d'une liste au dictwriter tout en créant l'objet lui-même. Nous devons raconter les noms de colonne du CSV à l'objet avant d'écrire au CSV. Sinon, il générera une erreur car l'objet ne pourra pas comprendre les noms clés du dictionnaire. Et dans la ligne suivante, nous appelons Method Writerrow de l'objet APPEND_WRITE.

Ligne 14 à 16: Nous avons créé un nouveau dictionnaire de données que nous voulons ajouter à un fichier CSV existant. Dans la ligne 16, nous appelons la fonction «APPENDNEWROW» et passant deux paramètres (le nom du fichier CSV existant et les données).

Maintenant, nous allons ajouter des données où certaines données sont manquantes.

Comme nous le savons, le principal problème avec la méthode de l'écrivain est qu'il n'y a pas de méthode pour détecter automatiquement que toute valeur de colonne manque. Mais la méthode DictWriter peut le deviner automatiquement avec l'aide des clés manquantes. Alors explorons cela avec un exemple.

# Liste de nouveaux éléments que nous voulons ajouter
newrow = "mois": "dec", "1958": "337", "1960": "432"
# appelant une fonction qui accepte deux paramètres de fichier CSV et de nouvelles données de ligne
APPENDNEWROW ('Test.CSV ', Newrow)

Maintenant, nous allons passer de nouvelles données de dict où la clé («1959») avec sa valeur est manquante. Alors, passons ces données au programme et voyons le résultat.

Sortir:

Mois, 1958 1959 1960
Janvier 340,360 417
318 342 391 février
Mars, 362 406 419
348 396 461 avril
Janvier 340,360 417
318 342 391 février
Dec, 337 405 432
Dec, 337 ,, 432

La sortie ci-dessus montre que à la place de la valeur manquante, la méthode DictWriter a mis une chaîne vide.

Conclusion

Nous avons vu deux méthodes pour écrire des données nouvellement créées dans un fichier CSV existant. Le premier écrivain de méthode est bon, mais seulement dans ce cas lorsque nous n'avons pas de valeurs de colonne manquantes. Parce que, comme nous l'avons déjà vu, la méthode de l'écrivain de CSV n'est pas en mesure de gérer les situations de valeur manquantes, et il entrera une valeur de colonne particulière dans une autre valeur de colonne. Donc, c'est un inconvénient majeur de la méthode de l'écrivain. Mais cette situation est très facilement gérée par la méthode DictWriter en raison des clés.