Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3】csvファイルの書き出し

from csv import writer

csvname="hoge.csv"
csvline=[a, b, c]

# only for the first time
if not os.path.exists(csvname):
 csvline_header=["a_value", "b_value", "c_value"]
 with open(csvname, 'a', newline='') as f:
  writer_object = writer(f, lineterminator='\n')
  writer_object.writerow(csvline_header)
  f.close()

with open(csvname, 'a', newline='') as f:
 writer_object = writer(f, lineterminator='\n')
 writer_object.writerow(csvline)
 f.close()

こんな感じで良いらしい
1回目はヘッダーを書き出すために、1度だけ実行する
2度目以降はファイルがあるので実行しない

a, b, cとかに書き出したい値を入れればOK




f.close()はwithで開いているので不要だと思う




書き出したcsvファイルの行末に、 ^M$ みたいなものがつくときがある
これは、CRLFというのが改行コードになっているから

■ 参考 : Pythonのcsvモジュールで出力されるファイルの改行コードをLFにする

↑のコードを一部修正して、lineterminator='\n'を追加した
writer_object = writer(f, lineterminator='\n')

ランキング参加中です

↓クリックしていただけると嬉しいです〜