Hvordan legge til en ny rad til CSV Python

Hvordan legge til en ny rad til CSV Python
I denne artikkelen skal vi utforske metodene for å legge til nyopprettede data til en eksisterende CSV -fil. CSV -modulene gir to metoder for å skrive CSV -filen, som er:
  1. Forfatter
  2. Dictwriter

Vi skal bruke disse CSV -skrivemetodene for å legge til våre nyopprettede data til en eksisterende CSV -fil.

Metode 1: Bruke CSV Writer () -metode

I denne metoden skal vi bruke forfatterens () -metoden til CSV for å legge de nyopprettede dataene til CSV.

CSV -fil: Nedenfor CSV -filen (test.CSV) Vi vil bli brukt til å legge til ny rad.

Måned, 1958,1959,1960
340.360.417
318.342.391
Mar, 362.406.419
348.396.461
340.360.417
318.342.391

Fra CSV Import Writer

Fra CSV Import Writer
# Denne funksjonen som legger til nye raddata i en eksisterende CSV -fil
def appendnewrow (csvfilename, elementstoappend):
# Åpne CSV -filen i vedleggsmodus
Med Open (CSVFilename, 'A+', newline = ") som append_obj:
# opprettet et forfatterobjekt fra forfattermodulen
append_writer = forfatter (append_obj)
# Det opprettede forfatterobjektet som skriver ny rad til CSV
append_writer.Writerow (ElementStoAppend)
# Liste over nye elementer som vi vil legge til
newrow = ["des", 337, 405, 432]
# Ringer en funksjon som godtar to parametere CSV -fil og nye raddata
appendnewrow ('test.CSV ', Newrow)

Produksjon:

Måned, 1958,1959,1960
340.360.417
318.342.391
Mar, 362.406.419
348.396.461
340.360.417
318.342.391
337.405.432

Linje 1: Vi importerer forfattermodulen.

Linje 4 til 10: Vi opprettet en funksjon som heter “AppendNewrow” som godtar to parametere (navnet på den eksisterende CSV -filen og dataene). Vi åpner CSV -filen (eksisterende CSV -fil) med vedleggsmodus ('A'), slik at vi kan legge til våre nye data i CSV -filen. For det opprettet vi et objekt (append_writer) fra forfattermodulen. Og i neste linje kaller vi metodeskrifis fra Append_Writer -objektet for å legge til dataene til CSV.

Linje 13 og 15: Vi opprettet en ny dataliste som vi ønsker å legge til en eksisterende CSV -fil. På linje 15 kaller vi funksjonen "appendnewrow" og passerer to parametere (navnet på den eksisterende CSV -filen og dataene).

Nå skal vi legge til data der noen data mangler.

I forrige eksempel har vi sett at det ikke er noen manglende kolonneverdi i de nyopprettede dataene. Men hva som vil skje hvis vi har noen manglende kolonneverdi? Så selv om vi har noen manglende kolonneverdi, har forfattermodulen til CSV ingen metode for å sjekke at alle kolonnverdiene er til stede i dataene eller ikke.

# Liste over nye elementer som vi vil legge til
newrow = ["des", 337, 432]
# Ringer en funksjon som godtar to parametere CSV -fil og nye raddata
appendnewrow ('test.CSV ', Newrow)

Produksjon:

Måned, 1958,1959,1960
340.360.417
318.342.391
Mar, 362.406.419
348.396.461
340.360.417
318.342.391
337.405.432
337.432

Vi opprettet et nytt datasett der en kolonneverdi mangler. Så når vi kjører eksemplet ovenfor, gir det et enkelt vedlagt resultat som vist i output ovenfor. Men i selve utgangen kan vi se at verdien 405 mangler. Som et resultat mangler CSV -forfattermodulen en metode for å bestemme en manglende kolonneverdi.

Så hvis vi ønsker å justere den riktige kolonnemessige verdien av de nyopprettede dataene, selv om det er noen manglende verdier, må vi passere noen tom strengverdi sammen med dataene, som nedenfor:

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

Ovennevnte saken er ikke så stor sak fordi det bare er en enkelt data, men når vi har milliarder av rader, kan vi ikke håndtere slike situasjoner med den tomme strengen som legger til metoden. For da vil det bli en veldig kjedelig jobb.

Metode 2: Bruke DictWriter () -metode

I denne metoden skal vi diskutere Dictwriter () -metoden for å legge de nyopprettede dataene til CSV. Dictwriter () -metoden har også anlegget til å finne ut hvilken kolonneverdi som mangler fordi den er en ordboksbasert metode, og hvis noen nøkkelverdi er tom, vil den holde tom streng automatisk.

CSV -fil: Vi bruker den samme CSV -filen (test.CSV) som vi har brukt i de forrige eksemplene.

# Denne funksjonen som legger til nye raddata i en eksisterende CSV -fil
def appendnewrow (csvfilename, elementstoappend):
# Åpne CSV -filen i vedleggsmodus
Med Open (CSVFilename, 'A+', newline = ") som append_obj:
# opprettet et forfatterobjekt fra forfattermodulen
append_writer = dictwriter (append_obj,
Feltnavn = ['Month', '1958', '1959', '1960'])
# Det opprettede forfatterobjektet som skriver ny rad til CSV
append_writer.Writerow (ElementStoAppend)
# Liste over nye elementer som vi vil legge til
Newrow = "Month": "Dec", "1958": "337", "1959": "405", "1960": "432"
# Ringer en funksjon som godtar to parametere CSV -fil og nye raddata
appendnewrow ('test.CSV ', Newrow)

Produksjon:

Måned, 1958,1959,1960
340.360.417
318.342.391
Mar, 362.406.419
348.396.461
340.360.417
318.342.391
337.405.432

Linje 1: Vi importerer Dictwriter -metoden.

Linje 4 til 12: Vi opprettet en funksjon som heter “AppendNewrow” som godtar to parametere (navnet på den eksisterende CSV -filen og dataene). Vi åpner CSV -filen (eksisterende) med vedleggsmodus ('A'), slik at vi kan legge til våre nye DICT -data i CSV -filen. Så passerer vi overskriften til CSV i form av en liste til Dictwriter mens vi oppretter selve objektet. Vi må fortelle kolonnenavnene på CSV til objektet før du skriver til CSV. Ellers vil det generere en feil fordi objektet ikke vil kunne forstå nøkkelnavnene på ordboken. Og i neste linje kaller vi metodeskriften fra Append_Writer -objektet for å legge til ordboksdataene til CSV.

Linje 14 til 16: Vi opprettet en ny dataordbok som vi ønsker å legge til en eksisterende CSV -fil. På linje 16 kaller vi funksjonen "appendnewrow" og passerer to parametere (navnet på den eksisterende CSV -filen og dataene).

Nå skal vi legge til data der noen data mangler.

Som vi vet, er hovedproblemet med forfattermetoden at det ikke er noen metode for automatisk å oppdage at noen kolonneverdi mangler. Men Dictwriter -metoden kan gjette dette automatisk ved hjelp av de manglende nøklene. Så la oss utforske dette med et eksempel.

# Liste over nye elementer som vi vil legge til
newrow = "måned": "dec", "1958": "337", "1960": "432"
# Ringer en funksjon som godtar to parametere CSV -fil og nye raddata
appendnewrow ('test.CSV ', Newrow)

Nå skal vi passere nye DICT -data der nøkkelen ('1959') med verdien mangler. Så la oss sende disse dataene til programmet og se resultatet.

Produksjon:

Måned, 1958,1959,1960
340.360.417
318.342.391
Mar, 362.406.419
348.396.461
340.360.417
318.342.391
337.405.432
Desember 337 ,, 432

Ovennevnte utgang viser at i stedet for den manglende verdien satte Dictwriter -metoden en tom streng.

Konklusjon

Vi har sett to metoder for å skrive nyopprettede data til en eksisterende CSV -fil. Den første metodeforfatteren er bra, men bare i så fall når vi ikke har noen manglende kolonneverdier. For som vi allerede har sett, er forfattermetoden til CSV ikke i stand til å håndtere manglende verdisituasjoner, og den vil legge inn en bestemt kolonneverdi i en annen kolonneverdi. Så dette er en stor ulempe med forfattermetoden. Men denne situasjonen håndteres veldig enkelt av Dictwriter -metoden på grunn av nøklene.