我在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 –