as Argument @write () muss str sein, nicht bytes [duplicate]

Diese Frage hat hier bereits eine Antwort:

Using pickle.dump - TypeError: muss str sein, nicht bytes 2 Antworten

Ich bin ein Anfängerprogrammierer und arbeite mich durch das Buch Python für den absoluten Anfänger. Ich bin auf ein Problem gestoßen, als ich versucht habe, eine Funktion mit hoher Punktzahl für das Quizspiel zu schreiben. Wenn die Funktion 'highscore (user, highscore):' aufgerufen wird, versuche ich, die Argumente entsprechend zuzuweisen, damit ich die Informationen zur späteren Verwendung in eine Datei kopieren kann. Beim Versuch, die benötigten Informationen zu speichern, ist jedoch ein Fehler aufgetreten.

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()

since Ich arbeite mich durch das Buch und habe auch Regale in Aktion gesehen. Ich habe versucht, sie auch zu verwenden, bin aber auf ihre eigenen Fehler gestoßen. Ignorieren Sie daher zu diesem Zeitpunkt die '#'.

m Teil pickle.dump wird ein Fehler generiert. Ich bekomme (wie der Titel schon sagt) immer wieder einen Schreibfehler.

Ich verstehe nicht, warum sie nicht als Zeichenfolge erkannt werden. wie wenn sie in der Hauptfunktion definiert sind, ist es in der Tat eine Zeichenfolge ..

Antworten auf die Frage(2)

Ihre Antwort auf die Frage