0

我很新,我很抱歉可能会问一个我缺少的简单答案的问题,但是我花了 3 个小时试图让这段代码与一个更大的程序一起工作,但我已经用完了头发拉出来。我不断收到 EOFError

score = 12

def scor_func(score):
  scores = []
  name = input("Please enter your name: ")
  entry = (name, score)
  scores.append(entry)
  f = open("Triviascores.bat", "wb+")
  pickle.dump(scores, f)

  scores = pickle.load(f)
  f.close()
  return scores

scor_func(score)
4

2 回答 2

2

之后关闭文件,dump然后在之前再次打开它load

import pickle

score = 12

def scor_func(score):
  scores = []
  name = input("Please enter your name: ")
  entry = (name, score)
  scores.append(entry)
  f = open("Triviascores.bat", "wb")
  pickle.dump(scores, f)

  f.close()

  f = open("Triviascores.bat", "rb")
  scores = pickle.load(f)
  f.close()
  return scores

scor_func(score)

如果您需要立即存储然后检索一个对象,您最好使用shelve标准库的一部分。

于 2013-11-06T10:12:21.053 回答
1

您必须close归档以刷新和关闭数据流。

  f = open("Triviascores.bat", "wb+")
  pickle.dump(scores, f)
  f.close()

  f = open("Triviascores.bat", "r")
  scores = pickle.load(f)
  f.close()
于 2013-11-06T10:11:37.697 回答