Python酸洗EOF问题
Posted
技术标签:
【中文标题】Python酸洗EOF问题【英文标题】:Python Pickling EOF issue 【发布时间】:2014-05-06 22:32:56 【问题描述】:我正在尝试使用以下代码从 pickle 文件中加载用户点。
import pickle
filehandle = True
try:
pickle_file = open("points.mvm", 'r')
except:
filehandle = False
if filehandle:
points = pickle.load(pickle_file)
pickle_file.close()
else:
points = 0
但是,它会引发EOFerror
。文件肯定在那里,而且似乎也有内容。
【问题讨论】:
Pickle 使用 'wb' 和 'rb' 【参考方案1】:这应该可行:
import pickle
points = 0
try:
with open('points.mvm', 'rb') as pickle_file:
points = pickle.load(pickle_file)
except IOError:
pass
print points
points += 1
with open('points.mvm', 'wb') as pickle_file:
pickle.dump(points, pickle_file)
请注意,如果您的目录中仍有 points.mvm
文件,则需要将其删除,因为它可能已损坏(即不是二进制文件),并且会为您提供 EOFError
。
【讨论】:
当我复制并粘贴代码时,它在第一个 open() 函数上引发了SyntaxError
。发生了什么?以上是关于Python酸洗EOF问题的主要内容,如果未能解决你的问题,请参考以下文章