Переписать мой текстовый файл с оценками, чтобы убедиться, что он содержит только последние 4 оценки (python)


Ранее, с помощью пользователей SO, я мог найти, как хранить максимум 4 ключа в Документе Python со свойством maxlength внутри словаря.

Теперь я хочу пойти дальше. Ниже текстовый файл со всеминедавний баллы моих участников - Дейв, Джек и Адам.

Jack:10
Dave:20
Adam:30
Jack:40
Adam:50
Dave:60
Jack:70
Dave:80
Jack:90
Jack:100
Dave:110
Dave:120
Adam:130
Adam:140
Adam:150

Теперь вот мой код, который позволяет мне увидеть последние 4 оценки в Python:

import collections
from collections import defaultdict
scores_guessed = collections.defaultdict(lambda: collections.deque(maxlen=4))
with open('Guess Scores.txt') as f:
    for line in f:
    name,val = line.split(":")
    scores_guessed[name].appendleft(int(val))

for k in sorted(scores_guessed):
    print("\n"+k," ".join(map(str,scores_guessed[k])))

writer = open('Guess Scores.txt', 'wb')

for key, value in scores_guessed.items():
   writer.writerow([key,':',value])

Очевидно, он выведет следующий результат для словаря:

Adam 150 140 130 50

Dave 120 110 80 60

Jack 100 90 70 40

тем не мениеЯ хочу, чтобы файл прочитал мне последние четыре результата в алфавитном порядке:

Adam:150
Adam:140
Adam:130
Adam:50
Dave:120
Dave:110
Dave:80
Dave:60
Jack:100
Jack:90
Jack:70
Jack:40

Я думал, что этот блок кода будет работать:

for key, value in scores_guessed.items():
   writer.writerow([key,':',value])

Все же это возвращает мне результат:

AttributeError: '_io.BufferedWriter' object has no attribute 'writerow'

Например, если Адам набрал 200 баллов, я хочу, чтобы Scores_guessed был переписан как:

Adam:200
Adam:150
Adam:140
Adam:130

Что не так?

ОБНОВИТЬ - В ответ на первый ответ ниже я отредактировал последний блок кода следующим образом:

for key, value in scores_guessed.items():
    writer.write("{}:{}\n".format(key,value))

Тем не менее он выдает мне следующее сообщение: writer.write ("{}: {} \ n" .format (key, value)) TypeError: 'str' не поддерживает интерфейс буфера

Что происходит?

Ответы на вопрос(1)

Ваш ответ на вопрос