Golang lesen CSV

Golang lesen CSV
Comma -getrennte Werte oder CSV ist ein Datenformat, bei dem jede Zeile ein Datensatz ist. Jeder Datensatz enthält ein oder mehrere Felder, wobei jedes Feld durch Kommas getrennt ist. CSV ist bei Export- und Importvorgängen für Datenbanken und Tabellenkalkulationen sehr beliebt. Dies liegt daran, dass sie komprimiert und leicht zu exportieren sind.

In diesem Artikel lernen wir, wie Sie mit der GO -Programmiersprache eine CSV -Datei lesen und schreiben können.

Golang -Codierung/CSV

Um die CSV -Dateien in GO -Programmierung zu verarbeiten, verwenden wir das Codierung/CSV -Paket. Es ist voller Funktionen zum Lesen und Schreiben von CSV -Dateien. Beachten Sie, dass eine neue Zeile einen einzelnen Datensatz in einer CSV -Datei darstellt. Jede Zeile kann ein oder mehrere Felder haben, die alle Whitespace -Zeichen ignorieren.

Um das Paket zu verwenden, können wir es importieren wie:

Importieren Sie "Codierung/CSV"

Wir können jetzt fortfahren und lernen, wie man mit CSV -Dateien in Go arbeitet.

Golang lesen CSV - Zeile für Linie

Um eine CSV -Datei mit dem Coding/CSV -Paket zu lesen, verwenden wir die Read () -Methode. Nehmen wir an, wir haben eine Datei mit dem Titel:

Benutzerinformation.CSV

Die Datei enthält Informationen zu Benutzern, wie im folgenden Beispiel -Snapshot gezeigt:

ID, FirstName, Lastname, E -Mail, E -Mail2, Beruf
100, Blondelle, Strephon, [email protected], [email protected], Front-End-Entwickler
101, Sissy, Hutchison, [email protected], [email protected], DevOps Engineer
102, Babita, Loeb, [email protected], [email protected], Spieleentwickler
103, Tomasina, Letsou, [email protected], [email protected], Back-End-Entwickler

Betrachten Sie den folgenden Beispielcode:

Paket Main
importieren (
"Codierung/CSV"
"fmt"
"io"
"Protokoll"
"OS"
)
func main ()
Datei, ERR: = OS.Open ("user_info.CSV ")
Wenn er irrt != nil
Protokoll.Tödlich (arr)

Leser: = CSV.NewReader (Datei)
für
ENGER_RECORD, ERR: = LESER.Lesen()
Wenn er irrt != nil || err == io.Eof
Protokoll.Tödlich (arr)
brechen

für Wert: = Bereich ENGEN_RECORD
fmt.Printf ("%s \ n", Ever_Record [Wert])


Lassen Sie uns den vorherigen Code aufschlüsseln, um besser zu verstehen, wie er funktioniert.

Wir beginnen mit dem Importieren der erforderlichen Pakete: Codierung/CSV, FMT, IO, Log und OS. Das FMT -Paket ermöglicht es uns, E/A -Operationen auszuführen. Das Protokollpaket wird verwendet, um Fehler zu protokollieren, die im Programm auftreten können.

Andererseits wird die IO -Paketmethode verwendet, um das IO zu spezifizieren.Leserschnittstelle. Wir verwenden den EOF -Fehler, um das Ende eines Datenstroms zu bestimmen.

Schließlich haben wir das OS -Paket. In unserem Beispiel verwenden wir dieses Paket, um die CSV -Datei zu lesen.

In der Hauptfunktion öffnen wir die CSV -Datei zum Lesen mit dem Betriebssystem.Open () Methode. Wir erstellen dann einen neuen Leser mit dem CSV.Newreader () Methode. Diese Methode nimmt ein IO an.Lesertyp.

Der nächste Schritt besteht darin, eine für die Schleife zu verwenden, um jeden Datensatz aus der CSV. Dann prüfen wir, ob ein Fehler auftritt. Wenn es einen Fehler einschließlich eines EOF gibt, brechen wir die Schleife und protokollieren den Fehler.

Der letzte Schritt besteht darin, jeden Datensatz der CSV -Datei zu iterieren und die Werte zurückzugeben.

Der vorherige Code sollte eine Beispielausgabe wie unten gezeigt zurückgeben:

Ausweis
Vorname
Familienname, Nachname
Email
E -Mail2
Beruf
100
Blondelle
Strephon
[email protected]
[email protected]
Entwickler für Benutzeroberflächen
-------------------Ausgang abgeschnitten-----------------------

Wenn Sie den CSV auf einmal lesen möchten, verwenden Sie die Methode readall () anstelle von read ().

CSV mit einem benutzerdefinierten Trennzeichen

Manchmal stoßen Sie auf eine CSV -Datei, die Kommas nicht als Trennzeichen verwendet. Obwohl nach dem Format einer CSV -Datei Dateien mit benutzerdefinierten Grenzwerten eine Herausforderung beim Parsen stellen.

Wir können jedoch das Komma und den Kommentar in Go -Programmierung angeben. Nehmen Sie das folgende Beispiel der CSV -Datei:

id; FirstName; Nachname; E -Mail; E -Mail2; Beruf
100; Blondelle; Strephon; [email protected]; [email protected]; Front-End-Entwickler
101; Sissy; Hutchison; [email protected]; [email protected]; DevOps Engineer
102; Babita; Loeb; [email protected]; [email protected]; Game Developer
103; Tomasina; LetSou; [email protected]; [email protected]; Back-End-Entwickler

Obwohl die Datei ein ähnliches Format wie eine CSV.

Um die vorherige Datei in Go zu analysieren, können wir den Code wie unten gezeigt ausführen:

Paket Main
importieren (
"Codierung/CSV"
"fmt"
"Protokoll"
"OS"
)
func main ()
Datei, ERR: = OS.Open ("user_info.CSV ")
Wenn er irrt != nil
Protokoll.Tödlich (arr)

Leser: = CSV.NewReader (Datei)
Leser.Comma = ';'
ENGER_RECORD, ERR: = LESER.Lese alles()
Wenn er irrt != nil
Protokoll.Tödlich (arr)

fmt.Println (ENGER_RECORD)

Der vorherige Code gibt einen benutzerdefinierten Trennzeichen mit dem Leser an.Komma.

Wenn Sie führende Räume entfernen möchten, können Sie den Wert festlegen:

Leser. TrimleadingSpace = true

Golang CSV schreiben

Um einen CSV -Datensatz in die Datei zu schreiben, verwenden wir die Schreibfunktion. Der Datensatz ist ein Stück Zeichenfolgewerte, wobei jede Zeichenfolge ein einzelnes Feld darstellt.

Hinweis: Da diese gepuffert sind, müssen Sie Flush anrufen, um sicherzustellen.

Betrachten Sie das folgende Beispiel:

Paket Main
importieren (
"Codierung/CSV"
"Protokoll"
"OS"
)
func main ()
NEW_RECORDS: = [] [] String
"Larine", "Oriana", "[email protected] "," [email protected] "," Back-End-Entwickler "
Datei, ERR: = OS.Create ("new_file.CSV ")
Datei verschieben.Schließen()
Wenn er irrt != nil
Protokoll.Tödlich (arr)

Schriftsteller: = CSV.NewWriter (Datei)
Verschieber.Spülen()
Für _, zeichnen Sie auf: = Bereich new_records
Wenn er: = Schriftsteller.Schreiben (Datensatz); irren != nil
Protokoll.Tödlich (arr)


Der vorherige Code erstellt die angegebenen CSV -Dateien und fügt die Datensätze zur Datei hinzu.

Wenn Sie Flush nicht manuell anrufen möchten, können Sie die WriteAll () -Methode verwenden. Es ruft die Flush -Methode automatisch auf.

Abschluss

In diesem Handbuch wird untersucht. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Schauen Sie sich andere Linux -Hinweis -Artikel an, um weitere Tipps zu erfahren.