解决Python2.7读写文件中的中文乱码问题


Posted in Python onApril 12, 2018

Python2.7对于中文编码的问题处理的并不好,这几天在爬数据的时候经常会遇到中文的编码问题。但是本人对编码原理不了解,也没时间深究其中的原理。在此仅从应用的角度做一下总结,

1.设置默认编码

在Python代码中的任何地方出现中文,编译时都会报错,这时可以在代码的首行添加相应说明,明确utf-8编码格式,可以解决一般情况下的中文报错。当然,编程中遇到具体问题还需具体分析啦。

#encoding:utf-8
或者
# -*- coding: utf-8 -*- 
import sys 
reload(sys) 
sys.setdefaultencoding('utf8') # 设置默认编码格式为'utf-8'

2.文件读写

文件读写中遇到中文,通常不会报错,但是最后运行结果显示乱码,给后续处理带来不便。

2.1 读文件

读文件时,如果文件路径、文件名中有中文,需要使用unicode函数将其编码为'utf-8'格式,然后再进行正常的文件读取。以我常用的pandas的read_csv函数为例,使用如下代码可以成功地读取名为“POI总表”的csv文件,保存在DataFrame数据类型的poi_list。

import pandas as pd
inpath = 'C:\\POI总表.csv'
**path = unicode(inpath, 'utf-8')**
poi_list = pd.read_csv(path)

2.2 写文件

文件名有中文,文件名乱码

当想要将程序运行结果保存到文本文件时,文本文件的命名中如果有中文,不做处理文件名会出现乱码。利用unicode函数进行编码可解。unicode(‘中文.csv','utf-8')

文件内容有中文,excel打开内容乱码

如果将包含中文的结果输出到csv文件,一般默认使用Excel打开文件时,文件内容会出现乱码,而使用文本编辑器打开不会乱码。这是因为Excel默认的编码方式为‘GBK‘,而文本编辑器默认的格式为‘utf-8'。使用codecs包在创建文件后添加语句f.write(codecs.BOM_UTF8)可解

name='语文'
f = open(name+'.csv','w')
f.write('123,语文')
f.close()
#修改编码
import codecs
f = open(**unicode(name+'.csv','utf-8')**,'w') # 文件名不乱码
**f.write(codecs.BOM_UTF8) # excel打开内容不乱码的核心语句**
f.write('123,语文')
f.close()

输出结果:

#文件名:璇???.csv
#Excel打开  123 璇???
#文本编辑器打开 123,语文
#改编码后
#文件名:语文.csv
#Excel打开  123 语文
#文本编辑器打开 123,语文

以上这篇解决Python2.7读写文件中的中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 字符串定义
Sep 25 Python
Python创建模块及模块导入的方法
May 27 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python+django实现简单的文件上传
Aug 17 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
python加载自定义词典实例
Dec 06 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 Python
python 实现对文件夹内的文件排序编号
Apr 12 #Python
pandas数值计算与排序方法
Apr 12 #Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 #Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 #Python
Python实现简单http服务器
Apr 12 #Python
Python实现一个服务器监听多个客户端请求
Apr 12 #Python
python使用socket创建tcp服务器和客户端
Apr 12 #Python
You might like
PHP音乐采集(部分代码)
2007/02/14 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
Python中的exec、eval使用实例
2014/09/23 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
wxPython实现绘图小例子
2019/11/19 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
Python 内存管理机制全面分析
2021/01/16 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
环保建议书500字
2014/05/14 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
事业单位考察材料范文
2014/12/25 职场文书
围城读书笔记
2015/06/26 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
礼貌问候语大全
2015/11/10 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers