はじめに
Pythonにcsv
というcsvの読み書きをするライブラリがあります。
しかし普通にwriter.writerow()
を使って書き込むと、書き込む行と行の間が1行空いてしまうという問題があります。ちなみに原因はCRLF
問題です。
ヘッダー |
---|
一行目のデータ |
空白 |
二行目のデータ |
空白 |
三行目のデータ |
Python3ではこれに対する解決策はnewline=""
を指定することで解決できるといろいろなサイトで解説されています。
しかし、Python2.7ではこれは動きません。
解決法を見つけたので共有します。
Python2.7での解決法
Python2.7では、以下のようにlineterminator="\n"
を指定することで改行文字を指定して回避することができます。
import csv
with open('test.csv', 'w') as f:
writer = csv.writer(f, lineterminator="\n")
writer.writerows(text)
こちらのドキュメントを参考にしました。
最後に
今回はPython2.7でcsvで1行空く問題の解決法について記事を書きました。
使用している環境がPython2だと、ネットで調べてもほとんどPython3なので動かなくて大変です。
今後もPythonのバージョン違いで記事がないものは積極的に記事を書いていこうと思います。
Python3での対象法