Golang czytał CSV

Golang czytał CSV
Wartości oddzielone przecinki lub CSV to format danych, w którym każda linia jest rekordem danych. Każdy rekord zawiera jeden lub więcej pól, przy czym każde pole oddzielone są przecinkami. CSV jest bardzo popularny w operacjach eksportowych i importowych dla baz danych i arkuszy kalkulacyjnych. Dzieje się tak, ponieważ są skompresowane i łatwe do eksportu.

W tym artykule dowiemy się, jak czytać i pisać do pliku CSV za pomocą języka programowania Go.

Golang kodowanie/CSV

Aby obsłużyć pliki CSV w programowaniu GO, użyjemy pakietu kodowania/CSV. Jest wypełniony funkcjami do czytania i pisania plików CSV. Pamiętaj, że nowa linia reprezentuje pojedynczy rekord w pliku CSV. Każda linia może mieć jeden lub więcej pól ignorowanie wszystkich znaków białej.

Aby użyć pakietu, możemy go zaimportować jako:

importować „kodowanie/CSV”

Możemy teraz kontynuować i nauczyć się pracować z plikami CSV w Go.

Golang Read CSV - Linia po linii

Aby odczytać plik CSV za pomocą pakietu kodowania/CSV, używamy metody Read (). Załóżmy, że mamy plik o nazwie:

Informacje użytkownika.CSV

Plik zawiera informacje o użytkownikach, jak pokazano w przykładowej migawce poniżej:

Identyfikator, nazwa pierwszej, nazwa lastName, e -mail, e -mail2, zawód
100, Blondelle, Strephon, [email protected], [email protected], deweloper front-end
101, Sissy, Hutchison, [email protected], [email protected], Inżynier DevOps
102, Babita, Loeb, [email protected], [email protected], twórca gier
103, Tomasina, Letsou, [email protected], [email protected], deweloper back-end

Rozważ następujący przykładowy kod:

Pakiet Main
import (
„Kodowanie/CSV”
„FMT”
„IO”
"dziennik"
„OS”
)
func main ()
Plik, err: = OS.Otwórz („user_info.CSV ”)
Jeśli err != zero
dziennik.Fatalny (err)

czytnik: = csv.NewReader (plik)
Do
każdy_record, err: = czytnik.Czytać()
Jeśli err != zero || err == io.Eof
dziennik.Fatalny (err)
przerwa

Dla wartości: = zakres co_record
fmt.Printf („%s \ n”, każdy_record [wartość])


Rozbijmy poprzedni kod, aby lepiej zrozumieć, jak to działa.

Zaczynamy od importu wymaganych pakietów: kodowanie/CSV, FMT, IO, Log i OS. Pakiet FMT pozwala nam wykonywać operacje we/wy. Pakiet dziennika służy do rejestrowania wszelkich błędów, które mogą wystąpić w programie.

Z drugiej strony metoda pakietu IO służy do określenia IO.Interfejs czytnika. Używamy błędu EOF, aby określić koniec strumienia danych.

Wreszcie mamy pakiet systemu operacyjnego. W naszym przykładzie używamy tego pakietu do odczytania pliku CSV.

W głównej funkcji zaczynamy od otwarcia pliku CSV do odczytu za pomocą systemu operacyjnego.Metoda Open (). Następnie tworzymy nowego czytnika za pomocą CSV.Metoda NewReader (). Ta metoda wymaga IO.Typ czytelnika.

Następny krok polega na użyciu pętli do odczytania każdego rekordu z pliku CSV. Następnie sprawdzamy, czy występuje jakikolwiek błąd. Jeśli wystąpił jakiś błąd, w tym EOF, przełamujemy pętlę i rejestrujemy błąd.

Ostatnim krokiem jest iterowanie każdego zapisu pliku CSV i zwrócenie wartości.

Poprzedni kod powinien zwrócić przykładowe dane wyjściowe, jak pokazano poniżej:

ID
imię
nazwisko
e-mail
E -mail2
zawód
100
Blondelle
Strephon
[email protected]
[email protected]
deweloper front-end
-------------------Wyjście obcięte-----------------------

Jeśli chcesz odczytać CSV jednocześnie, użyj metody Readall () zamiast Read ().

CSV z niestandardowym ogranicznikiem

Czasami możesz natknąć się na plik CSV, który nie używa przecinka jako ogranicznika. Chociaż postępowanie zgodnie z formatem pliku CSV, pliki z niestandardowymi ogranicznikami mogą stanowić wyzwanie podczas parsowania.

Możemy jednak określić przecinek i komentarz w programowaniu Go. Weź następujący przykład pliku CSV:

id; pierwsza nazwa; lastName; e -mail; e -mail2; zawód
100; Blondelle; Strephon; [email protected]; [email protected]; deweloper front-end
101; Sissy; Hutchison; [email protected]; [email protected]; DevOps Engineer
102; Babita; Loeb; [email protected]; [email protected]; twórca gier
103; Tomasina; Letsou; [email protected]; [email protected]; deweloper back-end

Chociaż plik jest zgodny z podobnym formatem do pliku CSV, używa półkolonów jako ograniczników zamiast przecinka.

Aby przeanalizować poprzedni plik w Go, możemy uruchomić kod, jak pokazano poniżej:

Pakiet Main
import (
„Kodowanie/CSV”
„FMT”
"dziennik"
„OS”
)
func main ()
Plik, err: = OS.Otwórz („user_info.CSV ”)
Jeśli err != zero
dziennik.Fatalny (err)

czytnik: = csv.NewReader (plik)
czytelnik.Comma = ';'
każdy_record, err: = czytnik.Czytaj wszystko()
Jeśli err != zero
dziennik.Fatalny (err)

fmt.Println (każdy_record)

Poprzedni kod określa niestandardowy ogranicznik za pomocą czytnika.Przecinek.

Jeśli chcesz usunąć wiodące przestrzenie, możesz ustawić wartość:

czytelnik. Trimleadingspace = true

Golang CSV Write

Aby napisać rekord CSV do pliku, używamy funkcji zapisu. Rekord jest kawałkiem wartości ciągów, przy czym każdy ciąg reprezentuje pojedyncze pole.

Uwaga: ponieważ są one buforowane, musisz wywołać Flush, aby upewnić się, że zapisuje rekord oryginalnego pisarza.

Rozważ poniższy przykład:

Pakiet Main
import (
„Kodowanie/CSV”
"dziennik"
„OS”
)
func main ()
new_records: = [] [] String
„Larine”, „Oriana”, „[email protected] ",„ [email protected] ",„ programista back-end ”
Plik, err: = OS.Utwórz („Nowy plik.CSV ”)
plik odroczenia.Zamknąć()
Jeśli err != zero
dziennik.Fatalny (err)

Pisarz: = CSV.NewWriter (plik)
Odroczający pisarz.Spłukać()
dla _, rejestr: = Range New_Records
Jeśli err: = pisarz.Napisz (zapis); błądzić != zero
dziennik.Fatalny (err)


Poprzedni kod tworzy określone pliki CSV i dodaje rekordy do pliku.

Jeśli nie chcesz ręcznie wywołuwać spłukiwania, możesz użyć metody writeall (). Automatycznie wywołuje metodę spłukiwania.

Wniosek

W tym przewodniku eksploruje sposób pracy z plikami CSV za pomocą pakietu Go Encoding/CSV. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby dowiedzieć się więcej wskazówek.