【问题标题】:Python Pickling EOF issuePython酸洗EOF问题
【发布时间】: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'

标签: python save pickle try-except eoferror


【解决方案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。发生了什么?
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2011-04-01
  • 1970-01-01
相关资源
最近更新 更多