Go言語でcsvファイルの読み書き
昨日の延長で、csvファイルの読み書きを試してみた。
encoding/csvパッケージを使う。
以下はcsvファイルを読み込んでtsvにして出力するサンプル
package main import ( "encoding/csv" "flag" "io" "os" ) func main() { flag.Parse() var reader *csv.Reader var writer *csv.Writer var columns []string var err error // ファイルを読み込みモードでオープン read_file, _ := os.OpenFile(flag.Arg(0), os.O_RDONLY, 0600) // Readerを用意 reader = csv.NewReader(read_file) // ファイルを書き込みモードでオープン(ファイルがなかったら作成する) write_file, _ := os.OpenFile(flag.Arg(1), os.O_WRONLY|os.O_CREATE, 0600) // Writerを書き込みモードでオープン writer = csv.NewWriter(write_file) // デリミタをタブに writer.Comma = '\t' for { // 1行読み出す columns, err = reader.Read() // EOFなら終了 if err == io.EOF { return } // ファイルに書き出す writer.Write(columns) writer.Flush() } }