Аргумент write () должен быть str, а не bytes [duplicate]

На этот вопрос уже есть ответ здесь:

Использование pickle.dump - TypeError: должен быть str, а не байтами 2 ответа

Я начинающий программист и работаю над книгой Python для абсолютного новичка. Я столкнулся с проблемой, пытаясь написать высокую оценку для викторины. когда вызывается функция 'highscore (user, highscore):', я пытаюсь назначить соответствующие аргументы, чтобы можно было извлечь информацию в файл для дальнейшего использования. Однако я сталкиваюсь с ошибкой, пытаясь сбросить необходимую информацию.

def highscore(user, highscore):
    '''stores the players score to a file.'''
    import pickle, shelve
    user = ''
    highscore = 0
    #Hscore = shelve.open('highscore.dat', 'c')
    Hscore = open('highscore.txt', 'a')
    pickle.dump(user, Hscore)
    pickle.dump(highscore, Hscore)
    #Hscore.sync()
    Hscore.close()

так как я работаю с книгой и также видел полки в действии, я тоже пытался их использовать, но столкнулся с их собственным набором ошибок. так что игнорируйте '#' в это время.

в части pickle.dump я генерирую ошибку. Я продолжаю получать (как следует из названия) ошибку записи аргумента.

Я не понимаю, почему он не распознает их как строку. поскольку, когда они определены в главной функции, это действительно строка ..

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

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