我在Python中很新。製作我在python中製作的遊戲的高分列表
所以我目前正在使用tkinter和python製作遊戲的高分榜。到目前爲止,我有代碼:
from operator import itemgetter
import pickle
playerName = input("what is your name? ")
playerScore = int(input('Give me a score? '))
highscores = [
('Luke', 0),
('Dalip', 0),
('Andrew', 0),
]
highscores.append((playerName, playerScore))
highscores = sorted(highscores, key = itemgetter(1), reverse = True)[:10]
with open('highscore.txt', 'wb') as f:
pickle.dump(highscores, f)
highscores = []
with open('highscore.txt', 'rb') as f:
highscores = pickle.load(f)
的問題是,它把這個到文件:
€] Q(X lukeqK†QX LukeqK†QX DalipqK†QX AndrewqK†QE (和是的,這正是它看起來像)
我不知道什麼是錯了,任何人都可以幫助,請
爲什麼這是一個問題嗎?通過使用'pickle',您可以將數據序列化並反序列化爲二進制格式。您正嘗試讀取不包含unicode的文件的文件內容,這就是爲什麼它看起來很奇怪。裝載後的「高分」是否包含正確的信息?如果是這樣,沒有錯。 – Ede
這裏沒有什麼錯:'pickle'產生一個數據的二進制表示 - 所以它不應該是人類可讀的。當你加載你的醃製文件時,你會得到你的數據。如果你想要一個人類可讀的文件,你可以使用'json'。請參閱https://docs.python.org/3/library/pickle.html#comparison-with-json –