电子商务网站建设课程性质,网站分享到朋友圈,泉做网站的公司,做盗版网站会坐牢吗有时候用excel打开一个csv文件#xff0c;中文全部显示乱码。然后手动用notepad打开#xff0c;修改编码为utf-8并保存后#xff0c;再用excel打开显示正常。 使用Python通过很少代码就能将上面过程自动化。 导入3个模块
import pandas as pd
import os
import chardetc…有时候用excel打开一个csv文件中文全部显示乱码。然后手动用notepad打开修改编码为utf-8并保存后再用excel打开显示正常。 使用Python通过很少代码就能将上面过程自动化。 导入3个模块
import pandas as pd
import os
import chardetchardet 模块用于得到文件的编码格式pandas 按照这个格式读取然后保存为xlsx格式。
获取filename文件的编码格式
def get_encoding(filename):返回文件编码格式with open(filename,rb) as f:return chardet.detect(f.read())[encoding]文件转码处理
保存为utf-8编码xlsx格式文件支持csv, xls, xlsx 格式的文件乱码处理。需要注意如果读入文件为csv格式保存时要使用xlsx格式
def to_utf8(filename):保存为 to_utf-8encoding get_encoding(filename)ext os.path.splitext(filename)if ext[1] .csv:if gb in encoding or GB in encoding:df pd.read_csv(filename,enginepython,encodingGBK)else:df pd.read_csv(filename,enginepython,encodingutf-8)df.to_excel(ext[0].xlsx)elif ext[1].xls or ext[1] .xlsx:if gb in encoding or GB in encoding:df pd.read_excel(filename,encodingGBK)else:df pd.read_excel(filename,encodingutf-8)df.to_excel(filename)else:print(only support csv, xls, xlsx format)批量转换
上面函数实现单个文件转化下面batch_to_utf8 实现目录 path 下所有后缀为ext_name文件的批量乱码转化
def batch_to_utf8(path,ext_namecsv):path下后缀为 ext_name的乱码文件批量转化为可读文件for file in os.listdir(path):if os.path.splitext(file)[1].ext_name:to_utf8(os.path.join(path,file))使用
if __name__ __main__:batch_to_utf8(.) # 对当前目录下的所有csv文件保存为xlsx格式,utf-8编码的文件