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ファイルの読み書きを正確に行うことができます。