1. 程式人生 > >UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte解決方法

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'),問題解決,事實證明確實是版本不同導致的。