【Golang】CSVファイルの読み書きをする方法

Golang

GoにはCSVファイルの読み書きのためのパッケージが組み込まれています。この記事では、GoLangでCSVファイルを扱う方法を詳しく解説します。

CSVとは

CSVとは、Comma Separated Valuesの略で、カンマで区切られたデータです。

現在では最もよく使われているエンコーディングの一つです。

そしてGolangには CSV データを処理するための encoding/csv パッケージがあります。

encoding/csvパッケージのインポート

GolangでCSVを使うには、以下のようにencoding/csvパッケージをインポートする必要があります。

import "encoding/csv"

また、外出先でファイルを開いたり作成したりするのに役立つosパッケージもインポートする予定です。

import "os"

GoLangでCSVファイルを読む方法

では、CSVファイルの読み込みに挑戦してみましょう。そのためには、まずosパッケージを使って開く必要があります。

そして、そのファイルからCSVリーダーを作り、その内容を読みます。

以下は、GoでCSVファイルを読み込むためのコードです。

package main
 
import (
    "encoding/csv"
    "fmt"
    "os"
)
 
func main() {
    file, err := os.Open("test.csv")
    if err != nil {
        fmt.Println(err)
    }
    reader := csv.NewReader(file)
    records, _ := reader.ReadAll()
 
    fmt.Println(records)
}

ご覧のように、リーダーはあらかじめ定義されたCSVファイルを読み込んで、コンソールにデータを出力します。

GoLangでCSVファイルに書き込みをする

ファイルを読み込むのと同じ方法で、CSVファイルを書き込むことができるようになります。

まず、osパッケージを使って書き込み用のファイルを作成します。

package main
 
import (
    "encoding/csv"
    "fmt"
    "os"
)
 
func main() {
    f, e := os.Create("./People.csv")
    if e != nil {
        fmt.Println(e)
    }
 
    writer := csv.NewWriter(f)
    var data = [][]string{
        {"Name", "Age", "Occupation"},
        {"Sally", "22", "Nurse"},
        {"Joe", "43", "Sportsman"},
        {"Louis", "39", "Author"},
    }
 
    e = writer.WriteAll(data)
    if e != nil {
        fmt.Println(e)
    }
}

上記のコードでは、文字列のスライスをデータとして取得し、取得したWriterを用いてCSVファイルに書き込んでいます。

タイトルとURLをコピーしました