Аргумент 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 я генерирую ошибку. Я продолжаю получать (как следует из названия) ошибку записи аргумента.
Я не понимаю, почему он не распознает их как строку. поскольку, когда они определены в главной функции, это действительно строка ..