首页 > 代码库 > python读写csv时中文乱码问题解决办法
python读写csv时中文乱码问题解决办法
参考1
参考2
CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 “,” 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开。CSV文档是一种编辑方便,可视化效果极佳的数据存储方式
1、python读写、追加csv方法:
‘r’:只读(缺省。如果文件不存在,则抛出错误)
‘w’:只写(如果文件不存在,则自动创建文件)
‘a’:附加到文件末尾(如果文件不存在,则自动创建文件)
‘r+’:读写(如果文件不存在,则抛出错误)
1 import csv,os 2 if os.path.isfile(‘test.csv‘): 3 with open("test.csv","r") as csvfile: 4 reader = csv.reader(csvfile) 5 #这里不需要readlines 6 for line in reader: 7 print line
import csv #python2可以用file替代open #不存在则会创建文件 with open("test.csv","w") as csvfile: writer = csv.writer(csvfile) #先写入columns_name writer.writerow(["index","a_name","b_name"]) #写入多行用writerows writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
import csv #python2可以用file替代open #不存在则会创建文件 with open("test.csv","a") as csvfile: writer = csv.writer(csvfile) #先写入columns_name writer.writerow(["index","a_name","b_name"]) #写入多行用writerows writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
2、excel打开csv文件,可以识别编码“GB2312”,但是不能识别“utf-8”,数据库里的字符串编码是utf-8.因此:
当从csv读取数据(data)到数据库的时候,需要先把GB2312转换为unicode编码,然后再把unicode编码转换为utf-8编码:data.decode(‘GB2312‘).encode(‘utf-8‘)
当从数据库读取数据(data)存到csv文件的时候,需要先把utf-8编码转换为unicode编码,然后再把unicode编码转换为GB2312编码:data.decode(‘utf-8‘).encode(‘GB2312‘)
3、decode(‘utf-8‘)表示把utf-8编码转换为unicode编码;encode(‘utf-8‘)表示把unicode编码转换为utf-8编码
4、Unicode只是一个符号集,它规定了符号的二进制代码,却没有规定二进制代码如何存储
5、可以使用python的编码转换模块:codecs
python读写csv时中文乱码问题解决办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。