1. ホーム
  2. python

[解決済み] PythonのDictwriterでCSVファイルを出力すると、データ行の間に空白行が入るのはなぜか [duplicate]

2023-02-11 09:32:06

質問

DictWriterを使用して、辞書内のデータをCSVファイルに出力しています。 CSV ファイルでは、各データ行の間に空白行があるのはなぜですか? 大したことではありませんが、私のデータセットは大きく、"double-spacing" がファイルの行数を2倍にするので、行数が多すぎて1つのcsvファイルに収まらないのです。

辞書に書き込むための私のコードは、次のとおりです。

headers=['id', 'year', 'activity', 'lineitem', 'datum']
output = csv.DictWriter(open('file3.csv','w'), delimiter=',', fieldnames=headers)
output.writerow(dict((fn,fn) for fn in headers))
for row in rows:
    output.writerow(row)

どのように解決するのですか?

デフォルトでは csv モジュールのクラスは Windows 形式の行終端記号 ( \r\n ) ではなく、Unix スタイル ( \n ). これが、明らかに二重の改行を引き起こしている原因でしょうか?

もしそうなら、それを DictWriter のコンストラクタで上書きできます。

output = csv.DictWriter(open('file3.csv','w'), delimiter=',', lineterminator='\n', fieldnames=headers)