LoginSignup
73
61

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-02-19

はじめに

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

73
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
61