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でファイルの文字コードを判定する方法でした。
