注意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过程:
- 查看输入文件的编码方式
#!/usr/bin/env bash
file -i file.txt
file.txt: text/x-c; charset=iso-8859-1
发现执行成功的均为utf-8编码的文本文件,未执行成功的为:iso-8859-1
可能Excel会根据文本的特点,导出与内容相适应的编码格式的TXT文本,
- 查看系统默认的文本编码方式
#!/usr/bin/env python3
import sys
sys.getdefaultencoding()
'utf-8'
-
解决:改变输入文件的编码方式,使用windows自带的文本编辑工具,打开输入TXT文本,点击文件,另存,修改下方的Encoding编码方式,保存,即可。使用这种方法,可能会存在部分字符乱码的情况,我提取的内容与特殊的字符关系不大,所以没什么影响。
感觉这是最简单的方法