python输出csv文件中文乱码-python读写csv时中文乱码问题解决办法

CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 “,” 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开。CSV文档是一种编辑方便,可视化效果极佳的数据存储方式

1、python读写、追加csv方法:

"r’:只读(缺省。如果文件不存在,则抛出错误)

"w’:只写(如果文件不存在,则自动创建文件)

"a’:附加到文件末尾(如果文件不存在,则自动创建文件)

"r+’:读写(如果文件不存在,则抛出错误)

1 importcsv,os2 if os.path.isfile("test.csv"):3 with open("test.csv","r") as csvfile:4 reader =csv.reader(csvfile)5 #这里不需要readlines

6 for line inreader:7 print line

importcsv#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]])

importcsv#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

原文地址:http://www.cnblogs.com/shengulong/p/7097869.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值