美文网首页Python
关于python2.7中文乱码问题

关于python2.7中文乱码问题

作者: 叫我老村长 | 来源:发表于2020-01-04 14:11 被阅读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有一个非常的麻烦就是乱码问题,遇到问题不要害怕,如果这篇文章没有帮你解决问题,你还可以上网找一些其他的资料,如果你真的没有办法解决乱码,那你可以选择将所有的中文都给它换成英语,或者拼音或数字,这样就可以彻底避免中文乱码问题啦。

    相关文章

      网友评论

        本文标题:关于python2.7中文乱码问题

        本文链接:https://www.haomeiwen.com/subject/vczuoctx.html