ホームページ > バックエンド開発 > Python チュートリアル > Windows で Python CSV 出力に余分な改行が含まれるのはなぜですか?

Windows で Python CSV 出力に余分な改行が含まれるのはなぜですか?

Patricia Arquette
リリース: 2024-12-03 19:30:13
オリジナル
481 人が閲覧しました

Why Does My Python CSV Output Have Extra Carriage Returns on Windows?

Python の Windows での CSV 出力ファイルの追加のキャリッジ リターンの問題

Python で CSV ファイルを生成するときに、誤って余分なキャリッジ リターンを追加する可能性があります各行の最後に戻ります。この動作は次のコードで確認できます。

import csv

with open('test.csv', 'w') as outfile:
    writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['hi', 'dude'])
    writer.writerow(['hi2', 'dude2'])
ログイン後にコピー

期待される出力:

hi,dude
hi2,dude2
ログイン後にコピー

実際の出力 (Windows):

hi,dude\r\r\nhi2,dude2\r\r\n
ログイン後にコピー

原因および Python 3 の解決策:

Python 3 では、この問題は、デフォルトのユニバーサル改行変換機能が原因で発生します。これを解決するには、newline='' を使用してファイルを開いてこの変換を無効にします。

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    ...
ログイン後にコピー

Python 2 の原因と解決策:

Python 2 の Windows の場合この問題は、CSV がバイナリ形式とみなされ、rn がレコード区切り文字であるために発生します。ファイルがテキスト モードで開かれた場合、Python は n を rn に置き換え、その結果、二重のキャリッジ リターンが発生します。解決策は、ファイルを常にバイナリ モードで開くことです:

with open('test.csv', 'wb') as outfile:
    writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
    ...
ログイン後にコピー

以上がWindows で Python CSV 出力に余分な改行が含まれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート