我需要一些帮助来覆盖python变量。这是我能给出的最好的例子。如果有人打开我的计划(.exe
或.py
),那么就会出现:
var = 5
var = raw_input("Enter the new variable value: ") ##THE PERSON ENTERS 3
var = 3
现在,用户关闭文件/程序,下次打开文件/程序时,他们希望程序记住var = 3
,因此用var = 5
覆盖了var = 3
。我不知道这是否可能,但如果是的话,你能告诉我吗?
要澄清:我希望我的.py
或.exe
记住变量已更改,并用新的变量覆盖旧变量,因此下次打开文件时,变量为已经改变了。
答案 0 :(得分:4)
您需要以某种方式存储值,例如存储在文件,数据库或某些服务中。
例如,使用simple file:
import io,os
try:
with io.open('~/.jordan_last_value', 'r', encoding='utf-8') as f:
var = f.read()
except IOError: # Read failed
var = raw_input('Enter the new variable value')
# Save value to disk
with io.open('~/.jordan_last_value', 'w', encoding='utf-8') as f:
f.write(var)
print ('Current value is ' + var)
正如您所看到的,这可能有点复杂,因此您可能想要更新file handling的知识。此外,此示例代码只能存储字符串。
答案 1 :(得分:2)
您可以使用pickle模块,json或其他:P
答案 2 :(得分:0)
使用pickle
模块:
import pickle
try: # try to open the file
with open('jordan_data.pkl', 'r+') as f:
var = pickle.load(f)
except IOError: # if it doesn't exist, get new input
var = raw_input("Enter the new variable value: ") # THE PERSON ENTERS 3
with open('jordan_data.pkl', 'a+') as f: # 'a' will create the file if it doesn't exist
pickle.dump(var, f) # then, save the file