01-chardet编码检测

一、基本用法

使用detect函数

输入字符串,输出检测的编码和置信度。

import urllib
rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
import chardet
chardet.detect(rawdata)

[out] {'encoding': 'EUC-JP', 'confidence': 0.99}

二、高级用法

处理大量文本,增量式的检测。

import urllib
from chardet.universaldetector import UniversalDetector

usock = urllib.urlopen('http://yahoo.co.jp/')
detector = UniversalDetector()
for line in usock.readlines():
 detector.feed(line)
 if detector.done: break
detector.close()
usock.close()
print detector.result

[out] {'encoding': 'EUC-JP', 'confidence': 0.99}

使用UniversalDetector()检测器,.feed()添加检测文本,增量检测的时候,如果达到最小阈值,则.done的值为True
使用.close()关闭,.result为结果。

import glob
from chardet.universaldetector import UniversalDetector

detector = UniversalDetector()
for filename in glob.glob('*.xml'):
    print filename.ljust(60),
    detector.reset()
    for line in file(filename, 'rb'):
        detector.feed(line)
        if detector.done: break
    detector.close()
    print detector.result

.reset()UniversalDetector()检测器的重用。

你可能感兴趣的:(01-chardet编码检测)