Python の
提供されたコード スニペットは、予期しない余分な復帰を含む CSV ファイルを生成します(r) 各行に。目的の出力の代わりに:
hi,dude hi2,dude2
ファイルは次のようになります:
hi,dude\r \r hi2,dude2\r \r
この動作は、プラットフォーム固有の行終了処理が原因で発生します。
公式 CSV ドキュメントでは、次の使用を推奨しています。ファイルを開くときに newline='' を使用してユニバーサル改行変換を無効にします:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) # ...
デフォルトでは、CSV ライターは RFC 4180 に従って各行を 'rn' で終了します。
Windows では、ファイルはバイナリで開く必要がありますcsv.reader または csv.writer に渡す前にモード (「rb」または「wb」) に設定してください。 CSV はテキスト形式ですが、関連するライブラリではバイナリとみなされ、レコードは「rn」で区切られます。テキスト モードで記述すると、Python ランタイムは 'n' を 'rn' に置き換えます。その結果、余分なキャリッジ リターンが発生します。
以上がWindows で Python CSV ライターが余分な改行を追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。