PythonでCSVファイルを読み込む際、改行コードの扱いは重要な要素となります。特に、CSVファイル内の各セルに改行が含まれている場合、適切に処理しなければなりません。

改行コードとは

プログラムを書く方はご存知だろうが、OSによってデフォルトで使用される改行コードは異なります。現在使われている改行コードには次の3つがあります。

  • LF(ラインフィード): Unix、Linux、Macで改行コードとして使われています。エスケープシーケンスで表すと「\n」。
  • CR(キャリッジリターン): 古いMacで改行コードとして使われていました。エスケープシーケンスで表すと「\r」。
  • CRLF: Windowsでは、CRの後にLFが続く2文字を改行コードとして扱います。エスケープシーケンスで表すと「\r\n」。

Pythonでの改行コードの扱い

Pythonのopen()関数には改行コードを制御するnewline引数があります。ファイルの読み書き時に改行コードがどうなるかは、このnewline引数に渡す値によって決まります。

CSVファイルの読み込み

Pythonの標準ライブラリであるcsvモジュールを使用してCSVファイルを読み込むことができます。以下に一例を示します。

import csv

with open("現行.csv") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

このコードでは、CSVファイルの各行を読み込み、その内容を表示しています。ただし、このコードでは改行コードの扱いについては特に指定していません。

改行コードを指定してCSVファイルを読み込む

csv.writerの引数にlineterminator='\\n'を指定することで、改行コードをLFに指定することができます。

import csv

with open('test.csv', 'at', newline='') as cout:
    writer = csv.writer(cout, lineterminator='\\n')

このように、PythonでCSVファイルを扱う際には、改行コードの扱いに注意を払う必要があります。適切に改行コードを扱うことで、CSVファイルの読み書きを正確に行うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です