win10+python3遇到UnicodeDecodeError: 'ascii' codec can't decode byte 0x89

   今天从git上下载了一个代码,本想运行一下,结果在加载mnist的时候一直提示UnicodeDecodeError: 'ascii' codec can't decode byte 0x89。

提示错误的代码段为:

with open(f,'rb') as f:

       data = pickle.load(f)

百度谷歌了很久(几乎半天)都没有找到解决的办法,后来看到一个网友说python2和python3的编码方式不一样,考虑到tensorflow没有win+python2版本,我把代码放在服务器下运行(python2+ubuntu+tensorflow)果然就没有错(哭了)。但是实验室的服务器无法加载可视化界面,无法运行程序中的绘图代码段,于是我又开始不停地找python3对应的解决办法,终于在一个博主那里找到了正确答案!!

即:将pickle.load(f)

改为:pickle.load(f,encoding='bytes')

这次的错误一定要记录下来,太深刻了,也希望后面遇到这个错误的人能搜索到解决办法,不要浪费时间!

你可能感兴趣的:(win10+python3遇到UnicodeDecodeError: 'ascii' codec can't decode byte 0x89)