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

时间: 2024-10-19 15:38:49

python读写csv时中文乱码问题解决办法的相关文章

MySQL客户端输出窗口显示中文乱码问题解决办法

转载:http://www.cnblogs.com/xdp-gacl/p/4008095.html 只为成功找方法,不为失败找借口! MySQL客户端输出窗口显示中文乱码问题解决办法 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示: 上网查了一下原因:之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码 1 show variables like 'char%';

maven测试时中文乱码问题解决方法

pom.xml增加-Dfile.encoding=UTF-8配置,如下: 1 <plugin> 2 <!--升级到新版本解决控制台乱码问题--> 3 <groupId>org.apache.maven.plugins</groupId> 4 <artifactId>maven-surefire-plugin</artifactId> 5 <version>2.19.1</version> 6 <confi

Servlet中文乱码问题解决办法

首先对于源jsp网站和servlet里面的字符集要一样,一般支持中文的字符集为UTF-8最好采用这个字符集(除此之外还有gb2312); 对于源jsp文件的代码中需要设置 设置你的page里面的字符集 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 设置html文件里面的字符集 <meta http-eq

mvn项目debug时中文乱码问题解决

场景:1. 项目采用maven作为构建工具.2. 前端页面为jsp,由前端团队独立完成,添加编码配置:<%@ page contentType="text/html;charset=utf-8"%>. 问题:在java中设置request属性值为中文,在jsp页面中进行访问,中文乱码! 解决办法:经过调试后发现,在项目构建配置中添加如下编码配置后中文显示正常: <properties> <project.build.sourceEncoding>UT

IntelliJ IDEA 中文乱码问题解决办法

自己最近在使用IntelliJ IDEA,发现总是出现中文乱码的问题,在网上找了很多教程,发现真是“天下文章一大抄”.还不如自己动手试着解决一下. 1.编辑器以及调试信息中文乱码问题 解决方案: 选择:File->settings->Editor->File Encoding 然 后在右边IDE Encoding处选择UTF-8,以及Project Encoding 处也选择UTF-8编码.这样,新建的文件就会以UTF-8编码形式建立,不会再出现中文乱码的情况.如果直接打开有些文件,同时

python写入csv文件中文乱码解决方案

今天修改程序,需要写入csv文件,发现中文会乱码,后来查了下,可以设置文件写入属性后,就可以解决: import csvimport codecslist=['a101','b101']sumlist=[]for str in list: templist=[] templist.append('a') templist.append('b') templist.append('c') sumlist.append(templist)csvfile = file('csv_test.csv',

sublime text 3中文乱码问题解决办法

一.首先要确保本机sublime已经有安装包管理器,如果没有,安装方法:http://blog.chinaunix.net/uid-12014716-id-4269991.html 文中的第一步:安装包管理器: 二.安装乱码处理插件: 调用ctrl+shift+p,输入:install package,回车,在稍后弹出的安装包框中搜索:ConvertToUTF8或者GBK Encoding Support,选择点击安装: 从此带有中文的文件打开就不会有乱码了.

tomcat 控制台中文乱码问题解决办法寻觅

看了很多种解决办法,然而并没有解决 如下面这个: Tomcat 控制台UTF-8乱码问题 1.修改cmd的编码格式 快捷键win+R打开运行程序,输入regedit打开注册表,找到以下路劲并且修改. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor],新建一个字符串值,key-value如下: "autorun"="chcp 65001",之后重新打开cmd即可. 2.修改Tomcat bin目录下st

vim下中文乱码问题解决办法

打开vim的配置文件,位置在 /etc/vim/vimrc 在其中加入 C代码 1 set fileencodings=utf-8,gb2312,gbk,gb18030 2 set termencoding=utf-8 3 set encoding=prc 保存退出,此时vim就能正确显示中文了. 对于gedit,解决方法如下: 在终端中运行 gconf-editor 在打开的界面中选择: apps->gedit-2->preferences->encodings 在右边的 auto_d