美文网首页
python txt csv文件同时含有多种编码清洗

python txt csv文件同时含有多种编码清洗

作者: michaelxwang | 来源:发表于2022-02-23 15:08 被阅读0次
# -*- coding: utf-8 -*-
"""
Created on Wed Feb 23 11:25:05 2022

@author: mw
"""

from tqdm import tqdm 

#源文件,清洗后的文件
file='idc201902-1.csv'
new_file='2_idc201902-1.csv'        


#打开文件,以二进制文件读取
file1 = open(file,'rb')
r = file1.read()
file1.close()

#文件拆分为列表
r=r.split(b'\n')

#删除文件头非数据部分
del r[0:3]
del r[1]

#计算文件长度
count=len(r)

#拆分子列表
for i in tqdm(range(0,count)):
    r[i]=r[i].split(b',')

#子列表第3个字段更换编码    
for i in tqdm(range(0,count)):
    if len(r[i])>=5:
        r[i][0]=r[i][0].strip()
        r[i][1]=r[i][1].strip()
        #第3列为udf8 其他列为gbk
        r[i][2]=r[i][2].decode('utf8').encode('gbk')
        

#写入替换文件        
with open(new_file, "w", encoding="gbk") as f:   # 写入替换好的文本
    print('写入替换文本...')
    for i in tqdm(range(0,count)):
        if len(r[i])>=5:
            f.write(r[i][0].decode('gbk')+','+r[i][1].decode('gbk')+','+r[i][2].decode('gbk')+','+r[i][3].decode('gbk')+','+r[i][4].decode('gbk')+'\n')
        else:
            print('错误行')
            print(r[i])

相关文章

网友评论

      本文标题:python txt csv文件同时含有多种编码清洗

      本文链接:https://www.haomeiwen.com/subject/acvolrtx.html