Golang CSVファイル入出力


package main

import (
    "encoding/csv"
    "log"
    "os"
    "fmt"
)

func main(){

    filename := "filename.csv"

    func(){
        // 書き出し
        wf, err := os.Create(filename)
    if err != nil {
            log.Println(err)
    }
    defer wf.Close()

    w := csv.NewWriter(wf) // utf8
    w.Write([]string{"hello","world"})
    w.Flush()
    }()

    func(){
        // 通常のファイル読み取り
        rf, err := os.Open(filename)
        if err != nil {
            log.Fatal(err)
        }

        r := csv.NewReader(rf)

        for {
            line, err := r.Read()
            if err != nil {
                break
            }
            fmt.Println(line)
        }
    }()

    func(){
        // ヘッダ付きファイル読み取り
        rf, err := os.Open(filename)
        if err != nil {
            log.Fatal(err)
        }

        r := csv.NewReader(rf)
        titles := map[string]int{}
        header := []string{}
        counter := -1

        for {
            counter++
            line, err := r.Read()
            if err != nil {
                break
            }
            if counter == 0{
                copy(header,line)
                for k,v := range line{
                    titles[v] = k
                }
                continue
            }
            fmt.Println(line)
        }
    }()
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です