LoginSignup
1

posted at

updated at

Pythonでファイルの文字コードを自動判別

背景

文字コードでエラーになる

皆さんは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を作成した際に、文字コードをいちいち開かず確認が済みますね!

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
What you can do with signing up
1