导读 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode,这篇文章给大家介绍Python2写csv文件中文乱码问题及解决方法,感兴趣的朋友跟随小编一起看看吧

前言

python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode。当list、tuple、dict里面有中文时,打印出来的是Unicode编码,这个是无解的。对中文编码纠结的建议尽快换python3吧,python2且用且珍惜!

csv中文乱码

1.open打开csv文件,用writer写入带有中文的数据时

writer写入单行writers写入多行

# coding:utf-8
import csvf = open("xieru.csv", 'wb')
writer = csv.writer(f)# 需要写入的信息
data = ["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"]writer.writerow(data)       # 写入单行
# writer.writerows(datas)    # 写入多行f.close()

2.打开csv文件,发现写入的中文乱码了

编码与解码

1.中文乱码问题一直是python2挥之不去的痛,这里先弄清楚乱码原因:

  • python2本身内部代码的编码有str和unicode两种编码
  • 然而文件写入到windows系统时候,windows上的是gb2312编码

所以就导致了乱码问题

2.先把python里面的中文字符串decode成utf-8,再encode为gbk编码

data.decode('utf-8').encode('gbk')

3.如果是读取csv文件的话,就反过来:

data.decode('gbk').encode('utf-8')

解决方案

1.方案一:对字符串转换编码(这个太麻烦了,不推荐)

# coding:utf-8
import csvf = open("xieru1.csv", 'wb')
writer = csv.writer(f)# 需要写入的信息
data = ["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"]a = []
for i in data:a.append(i.decode("utf-8").encode("gbk"))writer.writerow(a)           # 写入单行
# writer.writerows(datas)    # 写入多行f.close()

2.方法二:用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode (推荐)

# coding:utf-8
import csv, codecsimport sys
reload(sys)
sys.setdefaultencoding('utf8')f = codecs.open("xx.csv", 'wb', "gbk")
writer = csv.writer(f)
writer.writerow(["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"])# 多组数据存放list列表里面
datas = [["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],]writer.writerows(datas)
f.close()

python写入csv文件时的乱码问题

今天在使用python的csv库将数据写入csv文件时候,出现了中文乱码问题,解决方法是在写入文件前,先指定utf-8编码,如下:

import csv
import codecs
if __name__ == "__main__":file_name = "data.csv"with open(file_name, "wb") as f:f.write(codecs.BOM_UTF8)csv_write = csv.writer(f)csv_write.writerows([["姓名", "年龄"], ["张三", 18]])

得到csv文件,正确的显示了中文。

《Linux就该这么学》 - 必读的Linux系统与红帽RHCE认证免费自学书籍

Python2写csv文件中文乱码问题及解决方法详解相关推荐

  1. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...

  2. python读取csv文件的方法-python读取csv文件指定行的2种方法详解

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...

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

    python写入csv文件中文乱码解决方案 参考文章: (1)python写入csv文件中文乱码解决方案 (2)https://www.cnblogs.com/vsivn/p/6115537.html ...

  4. UTF-8的CSV文件中文乱码问题解决办法

    UTF-8的CSV文件中文乱码问题解决办法 参考文章: (1)UTF-8的CSV文件中文乱码问题解决办法 (2)https://www.cnblogs.com/leaves1024/p/1117138 ...

  5. SQL工具导出CSV文件中文乱码

    DBeaver 导出CSV文件中文乱码 相信在做IT开发的人都碰到过,中文乱码的问题.特别是做数据的工程是,经常有用sql查出一批数据后,要导成CSV文件时,发现导出的信息中,中文都是乱码:便会在网上 ...

  6. Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv

    python爬虫数据写入csv文件中文乱码,用'utf-8'在pycharm中打开文件没有问题,但是用excel打开却出现了问题,以下为解决方法. (最近在练习爬虫,这个博文是对自己学习的记录和分享, ...

  7. python 保存本地乱码,解决python保存数据到csv文件中文乱码的方法

    解决python保存数据到csv文件中文乱码的方法 发布时间:2020-07-08 13:49:53 来源:亿速云 阅读:695 作者:清晨 小编给大家分享一下解决python保存数据到csv文件中文 ...

  8. mysqlcsv导入中文乱码_Mysql 导入导出csv 中文乱码问题的解决方法

    导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ','  optio ...

  9. php 写入mysql 乱码,php写入mysql中文乱码的实例解决方法

    php写入mysql中文乱码的实例解决方法 php写入mysql出现中文乱码的解决办法是:在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect( ...

最新文章

  1. linxu其他用户登录mysql_Linux系统的MySQL用户如何开启远程登录权限
  2. 一定质量的封闭气体被压缩后_多晶硅氯氢化装置补充氢隔膜压缩机十字头铜套磨损原因分析与改善探讨...
  3. python输入逗号分隔_命令行Python逗号分隔的用户输入int值
  4. Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题
  5. mysql 两个结果集求差
  6. Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解
  7. 生物学家、钢管舞、全栈工程师,女程序员如何活得漂亮
  8. spring学习-xml属性注入-数组--list--map--set类型
  9. c++复习日记3 模板和流
  10. 数据库删除数据的方式
  11. (附源码)springboot菠萝大学课室预约分析与设计 毕业设计641656
  12. drawerLayout 抽屉的另一半,设置为透明的颜色
  13. 计算机保研保姆书(北航,浙软,南软,哈工大,上科大,天大,中南,华南理工,华东师范)【此后无良辰】
  14. android 联系人 字母索引,Android手机联系人带字母索引的快速查找
  15. 有缓震功能的舒缓拖鞋能给运动后带来什么样的减压效果?
  16. 2013 CocoaChina微信精选之技术汇
  17. UVa10158 War(并查集)
  18. Asterisk电子传真-5
  19. 机器学习--模型参数优化及scoring可选参数
  20. 【C语言学习】输入输出

热门文章

  1. kue api文档说明
  2. 开启CDN 后网站出现 “ 您的连接不是私密连接 ”
  3. 6.redis-哨兵
  4. 龙族幻想服务器维护中怎么办,龙族幻想社团维护费用不足怎么办_龙族幻想社团维护费用解决攻略_玩游戏网...
  5. Java读取数据库的数据并转换为json数据
  6. 深度学习GPU选购指南
  7. 正则表达式中 前瞻,后顾,负前瞻,负后顾等整理
  8. 软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)
  9. 公路平曲线及主点桩号计算
  10. 2-1:编写一个Java应用程序,输出俄文字母表。