python3 对不同编码类型的处理

处理方式一

对与一些文件,只是分析其内容,修改其编码类型不会产生其他影响的情况下可以采用此方式。

import chardet
def file_endcoding_format_convert(path):
    newData = b''
    with open(path, 'rb') as fp:
        data = fp.read()
        oldEncode = chardet.detect(data)['encoding']
        if oldEncode != 'utf-8':
            newData = data.decode(oldEncode).encode('utf-8')
    with open(path, 'wb') as fw:
        fw.write(newData)

处理方式二

有些文件修改器编码类型会对后续使用存在影响,所以不能修改编码方式,可以采用下面方法,以xml文件为例:

import chardet
import lxml
def read_xml(path):
    with open(path, 'rb') as fp:
        data = fp.read()
        oldEncode = chardet.detect(data)['encoding']
        parser = etree.XMLParser(encoding=oldEncode)
        tree = etree.parse(path, parser=parser)
        retrun tree

你可能感兴趣的:(Python)