PythonでBOM付きUTF-8ファイルを読み込む際には、エンコードを ‘utf_8_sig’ と指定します。これにより、BOM付きのUTF-8ファイルを適切に読み込むことができます。

import io
with io.open('sample.csv', 'rt', encoding='utf_8_sig') as f:
    print(f.readlines())

上記のコードは、’utf_8_sig’ エンコーディングを使用してBOM付きUTF-8ファイルを読み込む一例です。

また、PythonでBOM付きUTF-8のCSVファイルを出力する場合も同様に ‘utf_8_sig’ を指定します。

import os, csv
header = ["header"]
output_data = ["文字コードがBOM付きのUTF-8", "のCSVファイルが出力したい"]
path = "./sample.csv"

def writecsv(path):
    print("Output data path:  " + path)
    with open(path, 'w', encoding="utf_8_sig") as f:
        writer = csv.writer(f, lineterminator='\n')  # 改行コード(\n)を指定しておく
        writer.writerow(header)
        writer.writerow(output_data)
    print("Complete!")

writecsv(path)

上記のコードは、’utf_8_sig’ エンコーディングを使用してBOM付きUTF-8のCSVファイルを出力する一例です。

このように、PythonでBOM付きUTF-8ファイルを取り扱う際には、エンコーディングとして ‘utf_8_sig’ を指定することが重要です。これにより、BOM付きUTF-8ファイルの読み込みや出力を適切に行うことができます。

投稿者 admin

コメントを残す

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