地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

RubyのCSVでnew fileの時だけheaderをつける方法

スポンサーリンク

f:id:ihatov08:20170221215712j:plain

CSVでnew fileの時だけheaderをつける方法です。

header,write_headersオプションを使う

headerオプションで、headerにしたい文字列を配列で渡します。 write_headersオプションはtrueを渡した時にheaderが挿入されるので、 ファイルが存在しない場合、つまりnew fileの時だけtrueを渡してheaderを挿入します。 ファイルが存在する場合はfalseを渡して、headerを挿入しないようにします。

file_path = "file_path"
header = %w(date time description)
CSV.open(file_path, 'a+:shift_jis', headers: header,
         write_headers: !File.exist?(file_path)) do |csv|
  csv << csv_line
end