UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte解决方法

最近在学机器学习,看《机器学习实战》,因为书上的代码是在Python2下编写的,所以转到Python3会有许多问题需要修改。

第3章决策树有一个函数如下:

def grabTree(filename):
    import pickle
    fr = open(filename)
    return pickle.load(fr)
运行时一直出现下面的错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
上网搜索解决方法,其他人的方法是与编码有关系的,无法解决我的问题。自我感觉问题出在版本上,因为在前面的函数里把fw = open(filename,'w')改成了fw = open(filename,'wb'),所以在这个函数中也把fr = open(filename)改为fr = open(filename,'rb'),问题解决,事实证明确实是版本不同导致的。

你可能感兴趣的:(Python)