Python更改文件的编码格式

Python更改文件的编码格式



import os
from chardet.universaldetector import UniversalDetector

def change_encode(file,change_2_type):
    def get_encode_info(file):
        """
        读取文件的编码方式
        """
        with open(file, 'rb') as f:
            detector = UniversalDetector()
            for line in f.readlines():
                detector.feed(line)
                if detector.done:
                    break
            detector.close()
            return detector.result['encoding']


    def read_file(file):
        with open(file, 'rb') as f:
            return f.read()

    def convert_encode2_youwant(file, original_encode, des_encode):
        """
        将文件编码成你想要的格式
        :param file:
        :param original_encode:
        :param des_encode:
        :return:
        """
        file_content = read_file(file)
        file_decode = file_content.decode(original_encode, 'ignore')
        file_encode = file_decode.encode(des_encode)
        with open(file, 'wb') as f:
            f.write(file_encode)

    real_type=get_encode_info(file)
    if real_type!=change_2_type:
        """
            判断你想要的和实际编码是否相同 判断是否需要变更
        """
        convert_encode2_youwant(file,real_type,change_2_type)

    now_type= get_encode_info(file)
    if now_type==change_2_type:
        #判断是否成功
        return True
    else:
        return False
if __name__=="__main__":
    flag=change_encode("分公司箱型箱量(1).csv","utf-8")
    print(flag)



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值