解决Python2.7读写文件中的中文乱码问题
作者:haha_point 时间:2023-05-16 11:23:51
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,语文
来源:https://blog.csdn.net/haha_point/article/details/77948830
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python运算符优先级详细整理
![](https://img.aspxhome.com/file/2023/5/135305_0s.png)
python检测远程端口是否打开的方法
请给PNG8一个机会:对png8的误解
Python多线程、异步+多进程爬虫实现代码
MySQL优化之数据表的处理
python sys,os,time模块的使用(包括时间格式的各种转换)
百度在线手写输入法
python函数运行内存时间等性能检测工具
![](https://img.aspxhome.com/file/2023/1/93801_0s.png)
Python使用20行代码实现微信聊天机器人
![](https://img.aspxhome.com/file/2023/8/124638_0s.jpg)
Vue+Element+Springboot图片上传的实现示例
asp使用正则自动解析图片地址并保存
![](https://img.aspxhome.com/file/UploadPic/up/2007081711544653.jpg)
Hello! 404
![](https://img.aspxhome.com/file/UploadPic/20109/6/google-75s.jpg)
将django项目部署到centos的踩坑实战
Mysql中Insert into xxx on duplicate key update问题
git rebase 成功之后撤销的操作方法
![](https://img.aspxhome.com/file/2023/5/123735_0s.jpg)
Access与Flash的结合应用
分享python 写 csv 文件的两种方法
![](https://img.aspxhome.com/file/2023/9/113149_0s.png)
Python+OpenCV实战之利用 K-Means 聚类进行色彩量化
![](https://img.aspxhome.com/file/2023/9/101579_0s.jpg)