美文网首页
Python加载txt数据乱码问题升级版解决方法

Python加载txt数据乱码问题升级版解决方法

作者: 数据人阿多 | 来源:发表于2019-04-23 17:50 被阅读0次
    • 确定文件编码
      当不知道别人给的txt文件不知道是什么编码时,可以通过chardet模块来判断是属于什么编码
      chardet模块是第三方模块,需要手动安装
    import chardet
    
    data= open('111.TXT','rb').readline()         
    #读取一行数据即可,不用全部读取,节省时间,'rb' 指定打开文件时用二进制方法
    
    print(data)      #预览一下二进制数据
    chardet.detect(data)     #判断编码
    
    111.png

    由输出结果可以判定,该txt是'GB2312'编码概率是99%,confidence: 0.99 ,所以可以确定该txt编码格式就是'GB2312'

    • 用判断出来的编码打开txt文件
    f = open('111.TXT','r',encoding='gb2312')        #gb2312<gbk<gb18030
    data=f.readlines()           #把数据读取到列表里面
    f.close()
    
    222.png

    这时出现错误,为什么已经判断文件就是'GB2312',打开还是报错呢???
    难道是判断的编码错误的,然后再去读取原txt文件,多读取了一些数据再判断是什么编码,结果还是'GB2312',这是为什么呢???

    • 设置忽略非法字符参数
      查看了open函数的参数后,里面有个errors参数,有三个级别可选,一般选择ignore即可

      333.png
    • 再次去打开文件
      设置errors='ignore'后,成功打开文件

    f = open('111.TXT','r',encoding='gb2312',errors='ignore')        
    #忽略非法字符  gb2312<gbk<gb18030
    
    data=f.readlines()           #把数据读取到列表里面
    f.close()
    

    以上是自己在处理数据时遇到的一些阻碍,分享出来供大家参考,欢迎指正与交流

    相关文章

      网友评论

          本文标题:Python加载txt数据乱码问题升级版解决方法

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