我目前正在制作游戏,最后,用户名称和体验点将保存在字典中的文件中。然后,我将调用该文件,并用他们的名字和各自的经验打印出玩家。
但是,出于某种原因,我得到的是“TypeError:必须是str,而不是字节”
我不知道如何解决这个问题,对我来说,我的代码看起来很准确。我该怎么做才能解决这个错误?
码
import pickle
game_winners_tracker=open("C://Users//Documents//GameWinners.txt", "a")
finalname=str(x.character_name)
finalexp=str(x.exp)
print(finalname)
print(finalexp)
dumping={finalname:finalexp}
pickle.dump(dumping,game_winners_tracker)
game_winners_tracker.close
game_winners_tracker_second=open("C://Users//Documents//GameWinners.txt", "rb")
names_scores=pickle.load(game_winners_tracker_second)
print(names_scores)
print("The End!")
注意
当我在上面的代码中调用打印finalname和finalexp时(只是为了测试x.character_name和x.exp中的内容)我得到了我期望的内容 -
I.E它会打印出来:
Megan 130.5
我将两者都转换为字符串,为什么我会收到TypeError?
答案 0 :(得分:2)
模式'r +','w +'和'a +'打开文件进行更新(读写);注意> 'w +'截断文件。将'b'附加到模式以打开二进制文件>模式,在区分二进制文件和文本文件的系统上;在系统上 没有这种区别,添加'b'没有效果。
所以试试:
import pickle
game_winners_tracker=open("C://Users//Documents//GameWinners.txt", "ab")