数据库里导出的CSV的 GB2312格式转成UTF-8-SIG 格式

该脚本用于遍历指定目录下所有.csv文件,检测其原始编码并转为UTF-8。首先,使用os和chardet库获取文件路径和编码信息,然后读取文件内容,解码为UTF-8并忽略可能出现的错误,最后将转换后的内容写回文件。
摘要由CSDN通过智能技术生成

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
from chardet import detect


def decod(path):
    fns = []
    for root,dir,file in os.walk(path):
        if dir == []:
            print(root,dir,file)
            for f in file:
                if os.path.splitext(f)[1] == '.csv':     
                    fns.append(root + os.path.sep + "".join(f))
    #print(fns)

    for fn in fns:
        with open(fn, 'rb+') as fp:
            content = fp.read()
            encoding = detect(content)['encoding']
            print("before coding is %s" % encoding)
            content = content.decode(encoding, 'ignore').encode('UTF-8-SIG', 'ignore')
            fp.seek(0)
            fp.write(content)
    return fns
    
if __name__ == "__main__":

    path = r'D:\DTG_CSV_Data\20190628\SZSEL2'
    fns = decod(path)  # 转换完的文件
    for fn in fns:
        with open(fn, 'rb+') as fp:
            content = fp.read()
            encoding = detect(content)['encoding']
            print("after coding is %s" % encoding)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值