Pythonのcsvモジュールで出力されるファイルの改行コードをLFにする
目的
Pythonの標準モジュールであるcsv
モジュールで出力されるファイルの改行コードの変更方法をまとめます。
方法
以下のようにして改行コードを指定します。writer
の引数にlineterminator='\n'
を指定すれば改行コードをLFに指定することができます。
with open('test.csv', 'at', newline='') as cout: writer = csv.writer(cout, lineterminator='\n') # lineterminatorを'\n'で上書きし、改行コードがLFになるようにした。 writer.writerow([2, 2, 2])
試しに、何も指定しない以下のコードも同時に実行して結果を見てみます。実際に改行コードの変更が確認できます。
with open('test.csv', 'at', newline='') as cout: writer = csv.writer(cout) writer.writerow([1, 1, 1])
サクラエディタでの改行コードの表示がCRLFとLFの二つになっているということが確認できます。
csv
モジュールが使用する改行コードはデフォルトではCRLFを改行コードに使用することになっています。デフォルトのまま出力したファイルをLinux環境などで使用すると予期しないエラーに遭遇することもある(僕が昨日そうでした)ので、改行コードの指定は明示的に行っておいてもよいかもしれません。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
- 作者: 柴田淳
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログ (2件) を見る