Python で CSV ファイルを作成する場合、Microsoft Excel で各行を区切る空白行が発生するとイライラすることがあります。この問題は、csv.writer が行末を処理する方法が原因で発生します。
Python 3 では、出力ファイルをテキスト モード ('w') で開くと、Windows が各改行 ('n') を復帰と改行 ('rn')。これを防ぐには、パラメータ newline='' (空の文字列):
を使用して、with open('thefile_subset11.csv', 'w', newline='') as outfile: writer = csv.writer(outfile)
でファイルを開く必要があります。あるいは、Path モジュールの open() メソッドを使用します。 newline パラメータを指定することもできます:
from pathlib import Path with Path('thefile_subset11.csv').open('w', newline='') as outfile: writer = csv.writer(outfile)
Python 2 では、解決策は出力ファイルを次のように開くことです。 バイナリ モード ('wb') テキスト モード ('w') ではなく:
with open('thefile_subset11.csv', 'wb') as outfile: writer = csv.writer(outfile)
StringIO を使用したメモリ内操作の場合、結果の文字列には Windows 固有の行が含まれます。ターミネータ (「rn」)。この文字列をファイルに書き込むときは、必ず newline='':
from io import StringIO s = StringIO() writer = csv.writer(s) writer.writerow([1, 2, 3]) with open('thefile_subset11.csv', 'w', newline='') as f: f.write(s.getvalue())
以上がExcel への Python CSV 出力で空白行を防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。