with open(“log.txt”, “r”) as f:
#一次性读全部内容
data = f.read()
print(data)
错误的意思是:Unicode的解码(Decode)出现错误(Error)了,以gbk编码的方式去解码(该字符串变成Unicode),但是此处通过gbk的方式,却无法解码(can’t decode )。“illegal multibyte sequence”意思是非法的多字节序列,即没法(解码)了。
此种错误,可能是要处理的字符串本身不是gbk编码,但是却以gbk编码去解码 。比如,字符串本身是utf-8的,但是却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错。
通过查阅资料,有提出在读取文本的时候加入参数‘b’,不会提示错误,通过输出读取的数据显示。
with open(“table/clearance-log.txt”, ‘r’, encoding=’UTF-8′) as f:
如果您尝试打开采用 UTF-8 编码的 CSV 文件但仍然出现错误,则可能有几个不同的原因。
一种可能是 CSV 文件包含导致错误的非 UTF-8 字符或字节序列。 在这种情况下,您可能需要尝试使用不同的编码打开文件,看看是否能解决问题。
另一种可能性是错误是由您尝试打开文件的方式引起的。 这里有一些尝试:
1、确保在打开文件时将编码指定为“utf-8”。 例如:
import csv
with open(‘myfile.csv’, ‘r’, encoding=’utf-8′) as f:
reader = csv.reader(f)
# Process the CSV data here
2、尝试使用 utf-8-sig 编码而不是 utf-8。 这是 UTF-8 的变体,在文件的开头包含字节顺序标记 (BOM)。 某些程序可能会编写带有 BOM 的 CSV 文件,如果是这种情况,使用 utf-8-sig 会有所帮助。
import csv
with open(‘myfile.csv’, ‘r’, encoding=’utf-8-sig’) as f:
reader = csv.reader(f)
# Process the CSV data here
3、如果您使用的是 3.6 之前的 Python 版本,您可能需要使用 io 模块打开具有正确编码的文件。 例如:
import csv
import io
with io.open(‘myfile.csv’, ‘r’, encoding=’utf-8′) as f:
reader = csv.reader(f)
# Process the CSV data here