Python:有没有一种方法可以从另一个Python文件中永久更改变量?
有没有一种方法可以永久地更改变量,使其在代码完成时不会重置?我有以下代码: variables.py:Python:有没有一种方法可以从另一个Python文件中永久更改变量?,python,python-3.x,file,variables,python-3.5,Python,Python 3.x,File,Variables,Python 3.5,有没有一种方法可以永久地更改变量,使其在代码完成时不会重置?我有以下代码: variables.py: myvar = None Main.py: import variables variables.myvar = True 获取_variable.py: import variables print(variables.myvar) 输出: None 我希望它打印True您可以更改文件: fin = open("path-to-variables.txt",&qu
myvar = None
Main.py:
import variables
variables.myvar = True
获取_variable.py:
import variables
print(variables.myvar)
输出:
None
我希望它打印
True
您可以更改文件:
fin = open("path-to-variables.txt","a")
fin.write("myvar = True")
这应该会改变实际的文件。我认为这是不可能的(如果不在第二个脚本中重新编写整个python脚本,将整个内容写回文件),但还有另一种方法可以做到这一点。您可以将变量存储在另一种类型的文件(如json)中,而不是将变量存储在python脚本中。您可以有“variables.json”: 然后在python中:
import json # import the json library
with open("variables.json", "r") as f: # read the json file
variables = json.load(f)
myvar = variables["myvar"] # To get the value currently stored
variables["myvar"] = True # change the variable in python
with open("variables.json", "w") as f: # write back to the json file
json.dump(variables, f)
如果有很多变量,可以将它们全部存储在json中,就像使用字典一样:
{ "onevar": null,
"twovar": "kittens",
"redvar": "foo",
"bluevar": "bar" }
对于OPENOFFICE WRITER:
由于您在OpenOffice中使用Raspberry pi编写所有这些内容,并且自己创建json文件时遇到困难(OpenOffice假定它是一个编写器文档),因此您可以简单地允许python创建它:
import json
variables = { "onevar": null,
"twovar": "kittens",
"redvar": "foo",
"bluevar": "bar" }
with open("variables.json", "w") as f:
json.dump(variables, f)
如果python被告知打开一个要写入的文件,而该文件不存在,python应该创建有问题的文件,除非它被告知在一个不存在的目录中创建它(因此,如果目录“myfolder”不存在,您不能说open(“myfolder/variables.json”,“w”)。您可以运行此命令一次以初始化json文件,然后从那里继续打开和关闭。“是否有方法永久更改变量,以便在代码完成时不会重置?”否,代码完成时变量不再存在。通常,您谈论的是数据持久性。这可以通过简单的文件来实现,但可能意味着对某个数据库服务器进行一些查询。将所有随机的不相关变量放在一个文件中是一个坏主意。你可能不需要重新思考你的策略。juanpa.arrivillaga你能解释一下吗?你可以,但你不应该使用.py文件来实现变量持久性。哎呀,我希望你刚才删除的文件中没有其他内容……来吧。显然,您会对每个变量使用单独的文件。:)我早就说过了,我的意思是它可能会起作用。但这不是最优雅的方式。从技术上讲,如果要修改变量,就不应该从文件中存储变量。它不会另存为.json,我输入variables.json作为名称,因为下拉列表中没有json,它会另存为variables.json.otdt这对我来说是新的。如何运行python代码?什么的下拉列表中没有json?你导入json了吗?LibreOffice Writer,我正在树莓圆周率上使用HATs。啊,我将补充我的答案。
import json
variables = { "onevar": null,
"twovar": "kittens",
"redvar": "foo",
"bluevar": "bar" }
with open("variables.json", "w") as f:
json.dump(variables, f)