Pythonでファイルの文字コードを判定する方法

記事内に広告が含まれています。

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

タイトルとURLをコピーしました