Найти - Пользователи
Полная версия: Ran out of input
Начало » Python для новичков » Ran out of input
1
Stranger
def top_scores(score):
    """Forms a top scores list"""
    name = input("Enter your name")
    
    f = open("pickles11.dat", "wb+")
    top_scores = pickle.load(f)
    top_scores[score] = name
    pickle.dump(top_scores, f)
    f.close()
    keys = top_scores.keys()
    keys = list(keys)
    keys.sort(reverse=True)
    print("\nTop scores:")
    
    for i in keys:
        print(top_scores[i], i)

При выполнении возникает ошибка:
top_scores = pickle.load(f)
EOFError: Ran out of input

Подскажите, пожалуйста, где здесь проблема.
py.user.next
Stranger
f = open("pickles11.dat", "wb+")
wb+ стирает содержимое файла.
Stranger
Сначала получаем значение, потом его изменяем и вновь записываем, wb+ это позволяет. Я не прав?

P.S. Да и в принципе не важно, что оно делает, просто подскажите, как сделать, чтобы всё заработало
FishHook
Stranger
Ну так в файл перезаписывается уже полученная и измененная ценность, или я сильно ошибаюсь?
FishHook
Stranger
Откройте файл с wb+ и прочтитайте его содержимое.
Согласитесь, проще сделать это, чем гадать?
Stranger
def top_scores(score):
    """Forms a top scores list"""
    name = input("Enter your name")
    f = open("pickles11.dat", "rb")
    top_scores = pickle.load(f)
    top_scores[score] = name
    f.close()
    f = open("pickles11.dat", "wb")
    pickle.dump(top_scores, f)
    f.close()
    keys = top_scores.keys()
    keys = list(keys)
    keys.sort(reverse=True)
    print("\nTop scores:")
    
    for i in keys:
        print(top_scores[i], i)

Да, вы правы, спасибо за помощь. Переписал, всё работает.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB