试图添加一个保存系统,但我无法将文件更改为python上的变量
老实说,我不知道我在做什么,如果有人能帮上忙的话,我会非常感激的 我正在尝试制作一个保存游戏,这样你就可以保存一个文件,然后使用load和itll读取文件并恢复进度,但它不起作用试图添加一个保存系统,但我无法将文件更改为python上的变量,python,Python,老实说,我不知道我在做什么,如果有人能帮上忙的话,我会非常感激的 我正在尝试制作一个保存游戏,这样你就可以保存一个文件,然后使用load和itll读取文件并恢复进度,但它不起作用 bag=[""] gold=0 weapon=["cool looking stick,1"] level=1 savefile=input("what is you name") load=input("would you like to load
bag=[""]
gold=0
weapon=["cool looking stick,1"]
level=1
savefile=input("what is you name")
load=input("would you like to load a previous save")
if load == "yes":
f = open(savefile+"'s save.bag.txt", "r")
str(bag) == (f.read())
f.close()
f = open(savefile+"'s save.gold.txt", "r")
str(gold) == (f.read())
f.close()
f = open(savefile+"'s save.level.txt", "r")
level == (f.read())
f.close()
f = open(savefile+"'s save.weapon.txt", "r")
str(weapon) == (f.read())
f.close()
else:
f = open(savefile+"'s save.bag.txt", "w")
f.write(str(bag))
etc除了使用相等比较运算符
==
而不是赋值运算符=
来读取内容之外,您的代码将因字符串以外的任何内容而失败(因为对于文本文件,这是从f.read()
获得的)
一般来说,要保存结构化数据,我建议使用JSON,但要保存任意类,JSON是非常理想和简单的
我对这里的内容进行了重构,将所有玩家状态保存在一个类中:
classmethod从文件加载对象。(不过,它并不能真正验证是否加载了播放器。可以是任何对象。)Player.load()
instance方法将对象保存到适当命名的文件中Player.save()
谢谢现在我只需要看一个关于泡菜的旅游节目,我应该很好
import pickle
class Player:
def __init__(self, name):
self.name = name
self.bag = []
self.gold = 0
self.weapon = ["cool looking stick,1"]
self.level = 1
def save(self):
with open(self.name + ".save", "wb") as f:
pickle.dump(self, f)
@classmethod
def load(cls, name):
with open(name + ".save", "rb") as f:
return pickle.load(f)
name = input("what is your name?")
if input("would you like to load a previous save? [y/n]").lower().startswith("y"):
player = Player.load(name)
else:
player = Player(name)
player.save()
# e.g.:
player.level += 1
player.save()