8.2 CSVファイルを扱う

CSVとはComma-Separated Valuesの略で、多くの場合は「コンマ区切りのファイル形式」のことを指します。Goでは標準パッケージに encoding/csv が存在するので、簡単にCSVを扱えます。

encoding/csv パッケージは、GoDocを読む限り区切り文字としてコンマを主軸においているようです。他にもTSV(Tab-Separated Values)と呼ばれるタブ区切りや、 パイプ「 | 」やセミコロン「 ; 」など、区切り文字の設定を変えることでCharacter-Separated Values全般を扱えます。使い方を1つ覚えると他のフォーマットにも応用が効くので使い方を覚えて損のないパッケージでしょう。

Comma-Separated Valuesという意味でのCSVには、RFC 4180(Common Format and MIME Type for Comma-Separated Values (CSV) Files)と呼ばれる仕様があります。 encoding/csv はそれにしたがって実装されています。

note

RFC 4180の仕様は以下で公開されています。

https://datatracker.ietf.org/doc/html/rfc4180

日本語の参考訳もあります。

http://www.kasai.fm/wiki/rfc4180jp

RFC 4180は情報(Info: Informational)と分類されており厳密には標準仕様と言えませんが、現状は他に広く知られている仕様がないため、多くの場合で実務上の標準仕様として扱われています。つまり ...