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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值