Python3 の csv.writer で改行コードを LF にしたいときは lineterminator を変更する
ここ読んで見つけた。
使用環境は LinuxMint 19.1 tessa で Python3.6.8。
デフォルトの csv.writer の改行コードは CR/LF で出力される
例えば以下のようなコードがある。
import csv with open('hoge.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerow(['one', 'two', 'three'])
Python3 の標準ライブラリを使った簡単な CSV 書き出しコードだが、これでそのまま書き出すと改行コードは CR/LF になる(Excel 互換のため?)。これを LF にしたい。しかし公式ドキュメントでは newline=''
を使えと書いてある。ではどうするか。
lineterminator='\n' を指定して LF に変更する
以下のように lineterminator という終端処理パラメータを変更する(ドキュメントはこちら)。
import csv with open('hoge.csv', 'w', newline='') as f: writer = csv.writer(f, lineterminator='\n') # LF にしたいので '\n' を指定する。 writer.writerow(['one', 'two', 'three'])
これで改行コードが LF の CSV ファイルが出力される。