背景
文字コードでエラーになる
皆さんはPythonを実行する際に、読み込んだファイルの文字コードが予定したものと違ったということはありませんか?
私はpipのライブラリ一覧をエクスポートした際に「UTF-8」と「UTF-16」になるということがあったので、備忘録として残しておきます。
自動で文字コードを判別するために
使用したライブラリ
chardetというライブラリを使用することによって解決できました。
公式ドキュメント:https://chardet.readthedocs.io/en/latest/
ライブラリをインストール
$ pip install chardet
コードサンプル
from chardet import detect
# まず対象ファイルをバイナリーで読み込む
with open("<対象ファイル>", 'rb') as bf:
binary_data = bf.read()
encode_data = detect(binary_data)
# 再度ファイルを開く、この際に上記で調べてエンコードを代入する
with open("<対象ファイル>", mode='r', encoding=encode_data['encoding']) as f:
pass
最後に
これでExcelファイルからCSVを作成した際に、文字コードをいちいち開かず確認が済みますね!