Python

关于python2.7中文乱码问题

2020-01-04  本文已影响0人  叫我老村长

注意,我要说的是python的中文乱码问题,而且是python2版本的,关于python3以及其他的乱码的问题,这篇文章估计解决不了。

由于python默认以ASCII编码,所以不支持中文。所以我们需要在代码前面写上“#__ coding:utf-8 *”或者*#coding=utf-8.当然,如果你代码中没有中文,就不需要加上了。

还有一个原因,由于python所运行的操作系统决定的,windows默认的编码方式是GBK编码,所以这也是一个导致中文乱码的原因之一。

我的建议是不管你用什么,先在代码前面加上这一串,一定不会出现问题。

下面是我面临过得集中乱码问题

一、输处列表元素

a=["数据","百度","谷歌","腾讯"]
print a

结果代码显示

image

这个出现了乱码,这个乱码的原因是直接打印了列表,所以导致了乱码,这个乱码比较好解决,直接循环一遍就行

a=["数据","百度","谷歌","腾讯"]
# print a
for i in a:
    print i,

运行结果如下

image

当然,这个还有一个方法,就是如果出现乱码,都可以试试用这个方法循环一遍,这样就可以得到中文啦。

path=r"A:\后勤数据\学生数据_YJ_LHJ\1150111\115011101_2011-8-1_2016-5-12.xls"
print path
for i in path.split("\\"):
    print i
image

二、遇到中文字符串时,可以有两种解决方案,我也不知道具体的原理,反正这两种方法可以帮我解决大部分的乱码问题

  1. 在中文字符串前面加上u,比如字符串"百度",可以直接在字符串前面加上u"百度"
  2. 在字符串后面加上.decode("utf-8"),这个指定输出的编码格式,忽略#coding的定义。这里需要注意的是,这个方法只有在用的时候才用,使用完这个之后,字符串还是原来的编码格式。当然,如果“utf-8”不可以的话,也可以试试"gbk",“string_escape”,等其他编码方式。

三、读取文件时,出现乱码问题

做数据分析,很多情况需要读取文件,这时,如果你的文件路径出现了中文,就算你指定了utf-8的编码也可能出现乱码。

import pandas as pd
file=pd.read_excel(r"A:\后勤数据\学生数据_YJ_LHJ\1150111\115011101_2011-8-1_2016-5-12.xls")
print file

这时会报错

image

找不到文件,因为路径出现了错误,我们可以通过前面说的方法,在字符串前面加上u来解决

import pandas as pd
file=pd.read_excel(u"A:\\后勤数据\\学生数据_YJ_LHJ\\1150111\\115011101_2011-8-1_2016-5-12.xls")
print file

在需要转义的前面加上转义字符“\”,再在字符串前面加上u,这样就不会出错。

总结:python2有一个非常的麻烦就是乱码问题,遇到问题不要害怕,如果这篇文章没有帮你解决问题,你还可以上网找一些其他的资料,如果你真的没有办法解决乱码,那你可以选择将所有的中文都给它换成英语,或者拼音或数字,这样就可以彻底避免中文乱码问题啦。

上一篇下一篇

猜你喜欢

热点阅读