EOFError во время травления в Python - PullRequest
2 голосов
/ 04 августа 2011

Вот в чём проблема - я пытаюсь засолить, а потом разомкнуть его корки. Когда я использую pickle.load, Python, кажется, думает, что я пытаюсь загрузить файл с именем 'Pickle', который у меня есть. Вот код:

def recieve_hiscores():
    hiscores_file = open("hiscores_file.dat", "rb")
    for i in hiscores_file:
        hiscores = pickle.load(hiscores_file)
        hiscores = str(hiscores)
        print(hiscores)

Вот код травления:

def send_hiscores(score):
    hiscores_file = open("hiscores_file.dat", "ab")
    pickle.dump(score, hiscores_file)
    hiscores_file.close()

А вот и сообщение об ошибке:

Traceback (most recent call last):
File "C:\Python31\My Updated Trivia Challenge.py", line 106, in <module>
main()
File "C:\Python31\My Updated Trivia Challenge.py", line 104, in main
recieve_hiscores()
File "C:\Python31\My Updated Trivia Challenge.py", line 56, in recieve_hiscores
hiscores = pickle.load(hiscores_file)
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
EOFError

Не волнуйтесь, есть ли другие ошибки, я все еще учусь, но я не могу решить это.

1 Ответ

3 голосов
/ 04 августа 2011

Когда вы перебираете файл, вы получаете строки, разделенные новой строкой.Это НЕ то, как вы получаете серию солений.Ошибка конца файла возникает из-за частичного выбора.

Попробуйте:

...