Форум сайта python.su
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)
Офлайн
Strangerwb+ стирает содержимое файла.f = open("pickles11.dat", "wb+")
Офлайн
Сначала получаем значение, потом его изменяем и вновь записываем, wb+ это позволяет. Я не прав?
P.S. Да и в принципе не важно, что оно делает, просто подскажите, как сделать, чтобы всё заработало
Отредактировано Stranger (Март 30, 2016 15:06:38)
Прикреплённый файлы:
Снимок экрана от 2016-03-30 15-00-47.png (212,3 KБ)
Офлайн
Офлайн
Ну так в файл перезаписывается уже полученная и измененная ценность, или я сильно ошибаюсь?
Офлайн
Stranger
Откройте файл с wb+ и прочтитайте его содержимое.
Согласитесь, проще сделать это, чем гадать?
Офлайн
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)
Офлайн