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/
转载文章受原作者版权保护。转载请注明原作者出处!