PythonでUTF-8のBOMを扱う方法について説明します。UTF-8にはBOM (Byte order mark)が付く場合があります。これはエンコードがUTF-8であるという識別子です。
UTF-8 BOMの読み込み
PythonでUTF-8 BOM有りを読み込む場合はエンコードを ‘utf_8_sig’ と指定します。
import io
filename = "your_file.txt"
with io.open(filename, "r", encoding="utf_8_sig") as f:
content = f.read()
このコードは、BOMがあるUTF-8ファイルを読み込む例です。
UTF-8 BOMの書き出し
PythonでUTF-8 BOM付きのCSVファイルを出力する場合も、エンコードを ‘utf_8_sig’ と指定します。
import csv
header = ["header"]
output_data = ["文字コードがBOM付きのUTF-8", "のCSVファイルが出力したい"]
path = "./sample.csv"
with open(path, 'w', encoding="utf_8_sig") as f:
writer = csv.writer(f, lineterminator='\n')
writer.writerow(header)
writer.writerow(output_data)
このコードは、BOM付きのUTF-8でCSVファイルを書き出す例です。
以上、PythonでUTF-8のBOMを扱う基本的な方法について説明しました。これらの知識を活用して、Pythonでの文字コード処理をスムーズに行いましょう。.