错误UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xff:起始字节无效

https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools

在上述站点上编译“process.py”时出错

python工具/process.py–input\u dir数据–operation resize–outp
ut_目录数据2/调整大小
数据/0.jpg->data2/resize/0.png

回溯(最近一次呼叫最后一次):

文件“tools/process.py”,第235行,在<模块>
main()
文件“tools/process.py”,第167行,主
src=负载(src\u路径)
加载文件“tools/process.py”,第113行
contents=打开(路径).read()
文件“/home/user/anaconda3/envs/tensorflow_2/lib/python3.5/codecs.py”,第321行,解码中
(结果,消耗)=自身缓冲区解码(数据,自身错误,最终)
UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xff:无效的开始字节

错误的原因是什么?
Python的版本是3.5.2

Python尝试将字节数组(假定为utf-8编码字符串的bytes转换为unicode字符串(str)。这个过程当然是根据utf-8规则进行解码。当它尝试此操作时,会遇到utf-8编码字符串中不允许的字节序列(即位置0处的0xff)

由于您没有提供任何我们可以查看的代码,因此我们只能猜测其他代码

从堆栈跟踪中,我们可以假设触发操作是从文件读取(contents=open(path).read())。我建议以如下方式重新编码:

打开(路径“rb”)作为f的

:
contents=f.read()

open()中模式说明符中的b表示文件应被视为二进制文件,因此内容将保持为字节。这样就不会发生解码尝试

发表评论