56
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

PythonでUTF-8 with BOMのCSVファイルを出力する

はじめに

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 章立て変更

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
56
Help us understand the problem. What are the problem?