Pythonではファイルの文字コードが違った状態でOPENすると例外エラーが発生するので、OPENするファイルの文字コードを事前に知るのは重要なことです。
Pythonでファイルの文字コードを判定する
Pythonでファイルの文字コードを判定する方法にはいろいろあります。
今回はそのうちの一つchardetモジュールを利用します。
chardetモジュールのインストール
chardetモジュールは標準モジュールではないためインストールする必要があります。
インストールは
pip install chardet
で行います。
chardetモジュールの使い方
chardetモジュールはUniversalDetectorメソッドに読みこんだファイルのデータを渡して判定させます。
from chardet.universaldetector import UniversalDetector def getFileEncoding( file_path ) : detector = UniversalDetector() with open(file_path, mode= "rb" ) as f: for binary in f: detector.feed( binary ) if detector.done: break detector.close() return detector.result[ "encoding" ] def main(): ret = getFileEncoding( "sjis.csv" ) print( "sjis.csv Encoding={0}".format( ret ) ) ret = getFileEncoding( "utf8.csv" ) print( "utf8.csv Encoding={0}".format( ret ) )
このソースの実行結果は
sjis.csv Encoding=CP932 utf8.csv Encoding=utf-8
になります。
まとめ
Pythonでファイルの文字コードを判定するにはchardetモジュールを利用すれば簡単に行うことができます。
以上、Pythonでファイルの文字コードを判定する方法でした。