Python批量修改文件编码为 utf-8, 亲测Windows-1254可成功转码!

        今天在批量读取数据表时初次遇到 "Windows-1254" 的编码方式, 导致pd.read_csv无法正常读取.查阅了很多资料总结出了这篇简单易理解的文件转码方式,分享给大家一起学习.

1.获取文件列表

 import os
# 读取文件夹,获取文件列表
folder_path = r"S:\import"
file_list = os.listdir(folder_path)
file_list

2.遍历文件列表, 依次打开数据表获取编码信息, 将不是'utf-8'的文件转码为'utf-8'.

注意点:

(1) 只适用于csv文件转码, xlsx千万不要转utf-8, 文件会损毁!!!

(2)此步骤处理时间较长, 如果有更省时的处理方式欢迎留言.

(3)保险起见转码后的文件建议另存, 写入路径可自行修改.

for a in file_list:
    import chardet

    # ①确定文件编码,读取数据进行编码检测
    with open(folder_path+"\\"+a,'rb') as f:
        result = chardet.detect(f.read())
        encoding = result['encoding']
        if encoding != 'utf-8':
            # ②转码为utf-8

            # errors='ignore'谨慎使用,目前未发现对数据是否有影响,欢迎留言讨论
            with open(folder_path+"\\"+a,'r', encoding=encoding,errors='ignore') as f:
                text = f.read()
            with open(folder_path+"\\"+"Trans"+a,'w', encoding='utf-8') as f:
                f.write(text)
            print("{} 编码方式已从 {} 改为 utf-8".format(a, encoding))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值