时间:2021-05-22
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 pdinpath = '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 codecsf = 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读写文件中的中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
问题:python2.7查询或者插入中文数据在mysql中的时候出现中文乱码---可能情况:1.mysql数据库各项没有设置编码,默认为'latin'2.使用M
问题:python2.7查询或者插入中文数据在mysql中的时候出现中文乱码---可能情况:1.mysql数据库各项没有设置编码,默认为'latin'2.使用M
python2.7安装目录下没有Scripts文件夹。这种问题可能是你装的python安装包年代久远了,到官网下载最新的python2.7安装能解决这个问题。p
Java解决读写本地文件中文乱码的问题前言:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和
解决问题:python2.7无法在注册表中被识别,即在安装NumPy和SciPy等出现“pythonversion2.7required,whichwasnot