はじめに
Pythonで文字コードがBOM付きのUTF-8でCSVファイルを出力したくてググったが、すぐにやり方を見つけられなかったので、投稿
文字コードがUTF-8 With BOMだと、エクセルで開いたときに文字化けしません
コード
import os,csv
header = ["header"]
output_data = ["文字コードがBOM付きのUTF-8","のCSVファイルが出力したい"]
path = "./sample.csv"
# listを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)
ポイント箇所
with open(path, 'w', encoding="utf_8_sig") as f:
encoding="utf_8_sig"
とすることでBOM付きのUTF-8でCSVファイルを書き出すことが出来る。
####追記
タグの付加についての編集リクエストを頂いたので、採用させていただきました。
ありがとうございます。
###編集履歴
2019.09.20 タイトル一部変更
2021.04.14 章立て変更