Gjennom denne artikkelen vil vi lære å lese og skrive til en CSV -fil ved hjelp av Go -programmeringsspråket.
Golang -koding/CSV
For å håndtere CSV -filene i Go -programmering, bruker vi koding/CSV -pakken. Den leveres med funksjoner for å lese og skrive CSV -filer. Husk at en ny linje representerer en enkelt post i en CSV -fil. Hver linje kan ha ett eller flere felt som ser bort fra eventuelle hvitromstegn.
For å bruke pakken, kan vi importere den som:
Importer “koding/csv”Vi kan nå fortsette og lære å jobbe med CSV -filer i Go.
Golang les CSV - linje for linje
For å lese en CSV -fil ved hjelp av koding/CSV -pakken, bruker vi lest () -metoden. La oss anta at vi har en fil som heter:
brukerinformasjon.CSVFilen inneholder informasjon om brukere som vist i prøvenes øyeblikksbilde nedenfor:
id, første navn, etternavn, e -post, e -post2, yrkeTenk på følgende eksempelkode:
pakkehovedLa oss bryte ned den forrige koden for å forstå bedre hvordan den fungerer.
Vi starter med å importere de nødvendige pakkene: koding/CSV, FMT, IO, Log og OS. FMT -pakken lar oss utføre I/O -operasjoner. Loggpakken brukes til å logge eventuelle feil som kan oppstå i programmet.
På den annen side brukes IO -pakkemetoden til å spesifisere IO.Lesergrensesnitt. Vi bruker EOF -feilen for å bestemme enden av en datastrøm.
Endelig har vi OS -pakken. I vårt eksempel bruker vi denne pakken til å lese CSV -filen.
I hovedfunksjonen starter vi med å åpne CSV -filen for lesing ved hjelp av OS.Åpen () -metode. Vi oppretter en ny leser ved hjelp av CSV.NewReader () -metode. Denne metoden tar en IO.Lesertype.
Neste trinn innebærer å bruke en for loop for å lese hver post fra CSV -filen. Deretter sjekker vi om det oppstår noen feil. Hvis det er noen feil, inkludert en EOF, bryter vi sløyfen og logger feilen.
Det siste trinnet er å iterere over hver post av CSV -filen og returnere verdiene.
Den forrige koden skal returnere en prøveutgang som vist nedenfor:
idHvis du vil lese CSV -en på en gang, bruker du Readall () -metoden i stedet for å lese ().
CSV med tilpasset avgrensning
Noen ganger kan du komme over en CSV -fil som ikke bruker komma som avgrenseren. Selv om du følger formatet til en CSV -fil, kan filer med tilpassede avgrensere utgjøre en utfordring når du analyserer.
Vi kan imidlertid spesifisere komma og kommentar i Go -programmering. Ta følgende eksempel på CSV -filen:
id; første navn; etternavn; e -post; e -post2; yrkeSelv om filen følger et lignende format som en CSV-fil, bruker den semikoloner som avgrensere i stedet for et komma.
For å analysere den forrige filen i Go, kan vi kjøre koden som vist nedenfor:
pakkehovedDen forrige koden spesifiserer en tilpasset avgrenser ved hjelp av leseren.Komma.
Hvis du vil fjerne ledende rom, kan du angi verdien:
leser. TrimleadingsPace = TrueGolang CSV Writ
For å skrive en CSV -post til filen, bruker vi skrivefunksjonen. Plata er en skive strengverdier, med hver streng som representerer et enkelt felt.
Merk: Siden disse er buffret, må du ringe Flush for å sikre at den skriver plata til den opprinnelige forfatteren.
Tenk på eksemplet nedenfor:
pakkehovedDen forrige koden oppretter de spesifiserte CSV -filene og legger postene til filen.
Hvis du ikke vil ringe flush manuelt, kan du bruke Writeall () -metoden. Det kaller flush -metoden automatisk.
Konklusjon
Denne guiden utforsker hvordan du jobber med CSV -filer ved hjelp av Go Encoding/CSV -pakken. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for å lære flere tips.