Come aggiungere una nuova riga a CSV Python

Come aggiungere una nuova riga a CSV Python
In questo articolo, esploreremo i metodi per aggiungere dati appena creati a un file CSV esistente. I moduli CSV forniscono due metodi per scrivere il file CSV, che sono:
  1. scrittore
  2. Dicwriter

Utilizzeremo questi metodi di scrittura CSV per aggiungere i nostri dati appena creati a un file CSV esistente.

Metodo 1: utilizzando CSV Writer () Metodo

In questo metodo, utilizzeremo il metodo Writer () del CSV per aggiungere i dati appena creati al CSV.

File CSV: Il file CSV seguente (test.CSV) Saremo utilizzati per aggiungere nuova riga.

Mese, 1958.1959.1960
Gennaio, 340.360.417
Febbraio, 318.342.391
Mar, 362.406.419
Apr, 348.396.461
Gennaio, 340.360.417
Febbraio, 318.342.391

dallo scrittore di importazione CSV

dallo scrittore di importazione CSV
# Questa funzione che aggiungono nuovi dati di riga in un file CSV esistente
Def AppendNewrow (CSVFileName, ElementStoAppend):
# Apri il file CSV in modalità Append
con aperto (csvfilename, 'a+', newline = ") come append_obj:
# ha creato un oggetto Writer dal modulo Writer
append_writer = writer (append_obj)
# l'oggetto writer creato che scrive nuova riga al CSV
append_writer.Writerow (ElementStoAppend)
# Elenco di nuovi elementi che vogliamo aggiungere
Newrow = ["Dec", 337, 405, 432]
# Chiama una funzione che accetta due parametri CSV e nuovi dati di riga
AppendNewrow ('Test.CSV ', Newrow)

Produzione:

Mese, 1958.1959.1960
Gennaio, 340.360.417
Febbraio, 318.342.391
Mar, 362.406.419
Apr, 348.396.461
Gennaio, 340.360.417
Febbraio, 318.342.391
Dice, 337.405.432

Linea 1: Importiamo il modulo Writer.

Riga da 4 a 10: Abbiamo creato una funzione denominata "AppendNewrow" che accetta due parametri (il nome del file CSV esistente e i dati). Apriamo il file CSV (file CSV esistente) con la modalità Append ('A'), in modo da poter aggiungere i nostri nuovi dati al file CSV. Per questo, abbiamo creato un oggetto (append_writer) dal modulo Writer. E nella riga successiva, stiamo chiamando Method WriterOw dall'oggetto Append_writer per aggiungere i dati al CSV.

Riga 13 e 15: Abbiamo creato un nuovo elenco di dati che vogliamo aggiungere a un file CSV esistente. Nella riga 15, chiamiamo la funzione "appendnewrow" e passiamo due parametri (il nome del file CSV esistente e i dati).

Ora, appenderemo i dati in cui mancano alcuni dati.

Nell'esempio precedente, abbiamo visto non esiste un valore di colonna mancante nei dati appena creati. Ma cosa succederà se abbiamo un valore di colonna mancante? Quindi, anche se abbiamo un valore di colonna mancante, il modulo Writer del CSV non ha un metodo per verificare che tutti i valori delle colonne siano presenti nei dati o no.

# Elenco di nuovi elementi che vogliamo aggiungere
Newrow = ["Dec", 337, 432]
# Chiama una funzione che accetta due parametri CSV e nuovi dati di riga
AppendNewrow ('Test.CSV ', Newrow)

Produzione:

Mese, 1958.1959.1960
Gennaio, 340.360.417
Febbraio, 318.342.391
Mar, 362.406.419
Apr, 348.396.461
Gennaio, 340.360.417
Febbraio, 318.342.391
Dice, 337.405.432
Dice, 337.432

Abbiamo creato un nuovo set di dati in cui manca un valore di colonna. Quindi, quando eseguiamo il programma di esempio sopra, fornisce un semplice risultato aggiunto come mostrato nell'output sopra. Ma nell'output stesso, possiamo vedere che manca il valore 405. Di conseguenza, il modulo Writer CSV non ha un metodo per determinare qualsiasi valore della colonna mancante.

Quindi, se vogliamo regolare il valore saggio della colonna corretto dei dati appena creati, anche se ci sono alcuni valori mancanti, dobbiamo passare un valore di stringa vuoto insieme ai dati, come di seguito:

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

Il caso di cui sopra non è un grosso problema perché è solo una singola riga di dati, ma quando abbiamo miliardi di righe, non possiamo gestire tali situazioni con il metodo di aggiunta della stringa vuota. Perché allora diventerà un lavoro molto noioso.

Metodo 2: utilizzando il metodo DictWriter ()

In questo metodo, discuteremo del metodo DictWriter () per aggiungere i dati appena creati al CSV. Il metodo DictWriter () ha anche la funzione per capire quale valore della colonna manca perché è un metodo basato sul dizionario e se qualsiasi valore chiave è vuoto, manterrà automaticamente la stringa vuota.

File CSV: Stiamo usando lo stesso file CSV (test.CSV) come abbiamo usato negli esempi precedenti.

# Questa funzione che aggiungono nuovi dati di riga in un file CSV esistente
Def AppendNewrow (CSVFileName, ElementStoAppend):
# Apri il file CSV in modalità Append
con aperto (csvfilename, 'a+', newline = ") come append_obj:
# ha creato un oggetto Writer dal modulo Writer
append_writer = dictwriter (append_obj,
FieldNames = ['Month', '1958', '1959', '1960'])
# l'oggetto writer creato che scrive nuova riga al CSV
append_writer.Writerow (ElementStoAppend)
# Elenco di nuovi elementi che vogliamo aggiungere
Newrow = "Month": "Dec", "1958": "337", "1959": "405", "1960": "432"
# Chiama una funzione che accetta due parametri CSV e nuovi dati di riga
AppendNewrow ('Test.CSV ', Newrow)

Produzione:

Mese, 1958.1959.1960
Gennaio, 340.360.417
Febbraio, 318.342.391
Mar, 362.406.419
Apr, 348.396.461
Gennaio, 340.360.417
Febbraio, 318.342.391
Dice, 337.405.432

Linea 1: Importiamo il metodo DictWriter.

Riga da 4 a 12: Abbiamo creato una funzione denominata "AppendNewrow" che accetta due parametri (il nome del file CSV esistente e i dati). Apriamo il file CSV (esistente) con la modalità Append ('A'), in modo da poter aggiungere i nostri nuovi dati DICT al file CSV. Quindi passiamo l'intestazione del CSV sotto forma di un elenco al dicwriter mentre creiamo l'oggetto stesso. Dobbiamo dire i nomi della colonna del CSV all'oggetto prima di scrivere al CSV. Altrimenti, genererà un errore perché l'oggetto non sarà in grado di comprendere i nomi chiave del dizionario. E nella riga successiva, stiamo chiamando Method WriterOw dall'oggetto Append_writer per aggiungere i dati del dizionario al CSV.

Riga da 14 a 16: Abbiamo creato un nuovo dizionario di dati che vogliamo aggiungere a un file CSV esistente. Nella riga 16, chiamiamo la funzione "AppendNewrow" e passiamo due parametri (il nome del file CSV esistente e i dati).

Ora, appenderemo i dati in cui mancano alcuni dati.

Come sappiamo, il problema principale con il metodo Writer è che non esiste un metodo per rilevare automaticamente che manca un valore di colonna. Ma il metodo Dictwriter può indovinare questo automaticamente con l'aiuto delle chiavi mancanti. Quindi esploriamo questo con un esempio.

# Elenco di nuovi elementi che vogliamo aggiungere
Newrow = "Month": "Dec", "1958": "337", "1960": "432"
# Chiama una funzione che accetta due parametri CSV e nuovi dati di riga
AppendNewrow ('Test.CSV ', Newrow)

Ora, passeremo nuovi dati DICT in cui è mancante la chiave ('1959') con il suo valore. Quindi, passiamo questi dati al programma e vediamo il risultato.

Produzione:

Mese, 1958.1959.1960
Gennaio, 340.360.417
Febbraio, 318.342.391
Mar, 362.406.419
Apr, 348.396.461
Gennaio, 340.360.417
Febbraio, 318.342.391
Dice, 337.405.432
Dec, 337 ,, 432

L'output sopra mostra che al posto del valore mancante, il metodo DictWriter mette una stringa vuota.

Conclusione

Abbiamo visto due metodi per scrivere dati appena creati su un file CSV esistente. Il primo metodo scrittore è buono, ma solo in quel caso quando non abbiamo valori di colonna mancante. Perché, come abbiamo già visto, il metodo Writer di CSV non è in grado di gestire situazioni di valore mancante e imporrà un valore di colonna in qualche altro valore di colonna. Quindi, questo è un grande svantaggio del metodo dello scrittore. Ma questa situazione è gestita molto facilmente dal metodo Dictwriter a causa delle chiavi.