Python如何动态更改变量的值
现在我正在使用一个包含以下信息的.txt文件:Python如何动态更改变量的值,python,variables,mutable,Python,Variables,Mutable,现在我正在使用一个包含以下信息的.txt文件: ["corrector", "Enabled"] ["Inteligencia", "Enabled"] 然后在我的python程序中,它以最快的速度加载数据,如下所示: for line in open("menu.txt", 'r'): retrieved = json.loads(line) if retrieved[0] == "corrector": corrector = retrieved[1] if retri
["corrector", "Enabled"]
["Inteligencia", "Enabled"]
然后在我的python程序中,它以最快的速度加载数据,如下所示:
for line in open("menu.txt", 'r'):
retrieved = json.loads(line)
if retrieved[0] == "corrector":
corrector = retrieved[1]
if retrieved[0] == "Inteligencia":
Inteligencia = retrieved[1]
到目前为止,它工作得很完美,但是由于这是一个聊天机器人,我希望能够直接从聊天中更改该变量的值,我在聊天中调用“!Enable corrector”时尝试了这段代码
if corrector == "Enabled":
room.message("ERROR: Already Enabled")
else:
data = []
with open('menu.txt', 'r+') as f:
for line in f:
data_line = json.loads(line)
if data_line[0] == "corrector":
data_line[1] = "Enabled"
data.append(data_line)
f.seek(0)
f.writelines(["%s\n" % json.dumps(i) for i in data])
f.truncate()
room.message("corrector enabled")
这同样有效,如果我打开.txt文件,我可以看到它已经改变的值。真正的问题是python似乎不接受我更改了一个变量,它仍然认为它是“禁用”的,而它已经“启用”了。在我重新启动程序之前,它不会将变量读取为“已启用”
我想知道是否有一个刷新变量的选项,或者一个变通方法来动态地更改变量的值,使效果持续而不需要重新启动
动态更改变量的值
此代码动态更改变量的值:
a = 1
a = 2
您的问题表明您希望能够通过计算名称查找值。解决方法是使用dict
:
mydict = {'corrector':0}
mydict['corrector'] = 1
如果要更改文件中的值,则需要根据现有数据写出一个新文件。看起来您正在加载json,因此
json
模块将帮助您解决这个问题。变量的可能重复与它们的来源无关;对“变量”是什么似乎存在着根本性的误解。您必须再次读取该文件。可能的副本几小时前还有另一个dup。我在写的时候收集了11个独立的。是的,我正在使用json。所以问题是变量不能从列表中更新信息,但可以从dict中更新?这就是我从你的回答中所理解的。@Saelyth“变量不能从列表中更新其信息,但它可以从dict中更新”并不意味着什么。变量不会从任何内容更新其信息。变量通过赋值语句获取新值。就这样。啊,好吧,很抱歉,我不能在这里。我只是学习python作为我的第一种编程语言,我主要是从谷歌或这个网站上获得的信息中学习。谢谢你的回答,从现在起我将尝试使用dict(好吧,我必须学习,因为10分钟前我还不知道dict是什么)。谢谢@我强烈建议你遵循一个教程。