ファイルからピクルスのリストを取得しようとしていますが、エラーが発生し続けます。同じファイルから同じオブジェクトを unpickle することは、すべての関数内で行う必要がありますか、それとも一度 unpickle しても問題ありませんか?
最後に試したのは次のとおりです。
import pickle, sys
def openFile(fileName, mode):
"""Open a file."""
try:
file = open(fileName, mode)
except IOError as e:
print("Unable to open the file", fileName)
print(e)
input("Press the enter key to exit.")
sys.exit()
else:
return file
def writeScore(file, score):
"""Write score to file."""
try:
highScores = pickle.load(file)
except IOError as e:
print("File doesn't exist.")
print(e)
except EOFError as e:
print("File is empty.")
print(e)
else:
highScores.append(score)
highScores = highScores.sort()
pickle.dump(highScores, file)
score_file = openFile("highScores.dat", "ab+")
writeScore(score_file, 1000)
score_file.close()
score_file = openFile("highScores.dat", "rb")
highScore = pickle.load(score_file)
print(highScore)