在读取文件内容是报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position,Unicode解码错误,‘utf-8’无法对字节类型进行解码。但是文件夹里都是文本类型文件,应该不会出错。折腾了好多遍,发现其实是mac os系统会在每个文件夹下自动创建.DS_Store文件,这个文件是记录文件夹样式的隐藏文件,把这个隐藏文件删掉就好了。
但是UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position报错的实际原因的确是解码错误。.DS_Store文件不是文本文件,所以用“rt”模式读取就会报这个错。
类似的错误在stack overflow上也有,看这里
'utf-8' codec can't decode byte 0x80
stack overflow上这个,是因为打开的应该是个二进制文件,不能用open(file,'r'),‘r’会默认使用文本模式,而应该使用open(file,'rb').
'rb'代表读取二进制文件。
用python写的代码,大致是以下内容出错import os# 使用os获取mypath文件夹内的文件dir = os.listdir("mypath") # dir=[file1,file2,file3]for file in dir: with open(file,"rt") as f # “rt”表示以文本模式读取文件,默认是utf-8编码 # do...
解决
Unicode
Decode
Error
: ‘
utf-8
‘
codec
can‘t
decode
byte
0xca in
position
0:
inva
lid continuation
byte
英文字母,数字,符号都用特定的二进制
编码
方式计算机才能识别。“
Unicode
Decode
Error
: ‘
utf-8
’
codec
can’t
decode
byte
0xca in
position
0:
inva
lid continuation
byte
”,这句话翻译过来就是“
Unicode
Decode
Error
:“
utf-8
”编解码器无法解码位置0中的字节0xca:无效的连续字节”。说明啥呢?简单简单一句话就是你的文本里带的字符有
utf-8
翻译不了的,
utf-8
中没有定义。
data = pd.read
问题出在版本上,因为在前面的函数里把fw = open(filename,'w')改成了fw = open(filename,'wb'),所以在这个函数中也把fr = open(filename)改为fr = open(filename,'rb'),问题解决,事实证明确实是版本不同导致的。
今天想使用pyquery库读取本地HTML文件时报错:
Unicode
Decode
Error
: ‘gbk’
codec
can’t
decode
byte
0xa1 in
position
164: illegal multi
byte
sequence。 翻译一下就是
Unicode
Decode
Error
: ‘gbk’编解码器无法解码位置164中的字节0xa1:非法多字节序列。
分析原因: 这个HTML文件是
utf-8
格式的文件,存储是二进制数据,使用pyquery读取时是采用gbk进行解码!读到了非gbk
编码
形式的二进制数据,于是就报错了!
排错过程: 我通过查看pyquery源码,企
《机器学习实战》第二章决策树中报错
报错:
Unicode
Decode
Error
: ‘
utf-8
’
codec
can’t
decode
byte
0x80
in
position
0:
inva
lid start
byte
内容:fr = open(filename)
修改:fr = open(filename, ‘rb’)
分析:rb代表读取二进制文件
python
读取文件时,抛异常:'
utf-8
'
codec
can't
decode
byte
0x80
in
position
64:
inva
lid start
byte
读取文件时,以二进制文件读取
open(file=file_full_name, mode='rb')
# 抛异常
open(file=file_full_name, mode='r')
mode 参数源码释义:
mode是一个可选字符串,用于指定文件的存储模式打开了。它默认为“r”,这意味着可