Python3 中的 Pickle 文件
Pickle files in Python3
我尝试在 Python3 中读取和加载 pickle 文件。
import pickle as pickle
pickleFileName = 'data/fingerDataSet' + '.pickle'
pickleFile = open(pickleFileName, 'rb')
data = pickle.load(pickleFile)
pickleFile.close()
但是在 data = pickle.load(pickleFile)
行我遇到了奇怪的错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 5: ordinal not in range(128)
Pickle 不适用于不同的 Python 版本。
在这种情况下,原始数据可能位于 Python 2 str 中,其中包含字节,而 Python3 版本试图将其作为文本读取,执行隐式解码。
你应该做的是在 Python 2 环境中解压你的数据,并以不依赖于 Python 版本的方式保存它(如果它是图像,例如使用PIL库写一个PNG文件)
我尝试在 Python3 中读取和加载 pickle 文件。
import pickle as pickle
pickleFileName = 'data/fingerDataSet' + '.pickle'
pickleFile = open(pickleFileName, 'rb')
data = pickle.load(pickleFile)
pickleFile.close()
但是在 data = pickle.load(pickleFile)
行我遇到了奇怪的错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 5: ordinal not in range(128)
Pickle 不适用于不同的 Python 版本。 在这种情况下,原始数据可能位于 Python 2 str 中,其中包含字节,而 Python3 版本试图将其作为文本读取,执行隐式解码。
你应该做的是在 Python 2 环境中解压你的数据,并以不依赖于 Python 版本的方式保存它(如果它是图像,例如使用PIL库写一个PNG文件)