# -*- 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文件同時含有多種編碼清洗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.