現在我有一個文件名爲.txt正與此信息的變量的值:Python中如何動態更改
["corrector", "Enabled"]
["Inteligencia", "Enabled"]
然後在我的Python程序加載,在很beggining數據,這種方式:
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]
到目前爲止,它完美的作品,但因爲這是一個聊天機器人,我要讓可以直接從聊天改變變量的值,我想這代碼時,我打電話「聊天中啓用校正器」。
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似乎並不接受我更改了一個變量,並且它仍然認爲它已被「禁用」,而它已被「啓用」。它不會將變量讀取爲「啓用」,直到我重新啓動程序。
我想知道是否有一個變量的刷新選項或解決方法來動態更改變量的值,並使該效果持續無需重新啓動。
[dynamic variable]的可能重複(http://stackoverflow.com/questions/10963804/dynamic-variable) – Marcin
變量與他們來自何處並不相關;似乎對「變量」是什麼有一個基本的誤解。你必須重新閱讀文件。 – Izkata
[如何在python中創建未知數量的變量](http://stackoverflow.com/questions/17685199/how-to-create-an-unknown-amount-of-variables-in-python) – abarnert