Python导出csv中文乱码utf_8_sig没用

python读写文件基本操作

在数据过滤操作中,常常需要对源文件(source)中的数据进行读取、分析、判别处理,而后再写入新的文件。在文件的读取上可以是 .xlsx也可以是 .csv,使用pandas如: pd.read_excel("source.xlsx"),可以对excel文件轻松读取,同样也可以读取csv文件。但在文件的写入上,python中excel文件写入比较复杂,不在赘述;相对而言csv文件较为完善,操作较为方便:首先建立一个字典变量a,而后使用 b=DataFrame(a)将该变量转化为数据框架变量b,调用b的 to_csv()函数写入文件即可,如下代码块所示:

import pandas as pd
out_value = {}
out_value["C_item1"] = [2 ,"投桃报李", 456.3]
out_value["C_item2"] = [2,"投桃报李", 456.3]
dataframe = pd.DataFrame(out_value)
dataframe.to_csv("out.csv", mode='a', index=False, sep=',', header=False)

网络上的解决方法

但需要写入的数据(或数据的一部分)是中文时,会出现中文变成乱码的情况,网上一般的解决办法是添加: encoding="utf_8_sig",即

dataframe.to_csv("out.csv", mode='a', index=False, sep=',', header=False, encoding="utf_8_sig")

我遇到的问题

在写入文件后,我的文件依然中是中文乱码,即便 encoding="utf_8_sig"已经添加,但没用。

经过探索可能的原因是:

我的文件效果与源代码

解决过程

    使用 df.to_csv(file_name2, encoding='utf_8_sig') 后中文乱码问题解决了
    df.to_csv(file_name3,encoding="utf_8_sig")

奇怪归奇怪 ,但总算有解决问题的思路了。我就不修改就行了
用python产生csv文件,先写入一个行标题的header; 再按照业务的要求逐行追加数据内容。

out_value[title[i]] = []
out_value["C_item1"] = [2 ,"投桃报李", 456.3]
out_value["C_item2"] = [2 ,"投桃报李", 456.3]

有待探索,欢迎大佬们指教!

Original: https://blog.csdn.net/weixin_45298878/article/details/116358603
Author: 呜呜呜小吴莫哭
Title: Python导出csv中文乱码utf_8_sig没用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675918/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球