美文网首页
2019-08-12 Python3 'utf-8' codec

2019-08-12 Python3 'utf-8' codec

作者: YPCHEN1992 | 来源:发表于2019-08-12 16:09 被阅读0次

    注意Excel转Tab-txt时,文本的编码方式可能不同

    最近编写了一个Python脚本用于从网页抓取特定的数据,
    输入为Tab键分隔的7列的文本文件
    该文本文件从excel中直接另存为Tab键分隔的TXT文本
    **在读取过程中,部分文件报错 UnicodeDecodeError **

    #!/usr/bin/env python3
    ...
    infile = open('file.txt', 'rt')
    html = infile.read()
    ...
    

    报错:

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 986: invalid start byte
    

    Debug过程:

    1. 查看输入文件的编码方式
    #!/usr/bin/env bash
    file -i file.txt
    file.txt: text/x-c; charset=iso-8859-1
    

    发现执行成功的均为utf-8编码的文本文件,未执行成功的为:iso-8859-1
    可能Excel会根据文本的特点,导出与内容相适应的编码格式的TXT文本,

    1. 查看系统默认的文本编码方式
    #!/usr/bin/env python3
    import sys
    sys.getdefaultencoding()
    'utf-8'
    
    1. 解决:改变输入文件的编码方式,使用windows自带的文本编辑工具,打开输入TXT文本,点击文件,另存,修改下方的Encoding编码方式,保存,即可。使用这种方法,可能会存在部分字符乱码的情况,我提取的内容与特殊的字符关系不大,所以没什么影响。


      txt

    感觉这是最简单的方法

    相关文章

      网友评论

          本文标题:2019-08-12 Python3 'utf-8' codec

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