投稿

10月 15, 2025の投稿を表示しています

Pythonのcsvモジュールのwriterオブジェクトでwriterow()を使ってCSVファイルに書き出す際、空白行が発生するのを防ぐには

  Pythonの csv モジュールの writer オブジェクトで writerow() を使ってCSVファイルに書き出す際、 空白行 が発生するのを防ぐには、ファイルを開く際に**newline=''**という引数を指定する必要があります。 空白行の発生を防ぐ方法 空白行が発生する主な原因は、Pythonの universal newlines 機能と、CSVライターが自動的に追加する改行コードが 二重になる ことです。 これを避けるためには、ファイルを open() 関数で開くときに、以下のように** newline='' **を指定します。 Python import csv data = [ [ 'Header1' , 'Header2' ], [ 'ValueA' , 'ValueB' ], [ 'ValueC' , 'ValueD' ] ] # newline='' を指定することで、空白行の発生を防ぐ with open ( 'output.csv' , 'w' , newline= '' , encoding= 'utf-8' ) as f: writer = csv.writer(f) writer.writerows(data) print( "output.csv が作成されました。" ) 引数 役割 w 書き込みモードでファイルを開きます。 newline='' ファイルの改行コード変換を無効にし、 csv モジュールが正しく改行を処理できるようにします。これが 最も重要 です。 encoding='utf-8' 多くの環境で標準的に使用される UTF-8 エンコーディングを指定します。日本語などのマルチバイト文字を扱う際にも推奨されます。 この newline='' の指定により、 csv.writer が改行コード(通常は \n )を書き込む際に、PythonのファイルオブジェクトがさらにOS固有の改行コードを...