Python:有没有办法永久更改另一个 Python 文件中的变量?

Python: is there a way to permanently change a variable from another Python file?

有没有办法永久更改变量,使其在代码完成时不会重置?我有这个代码:

variables.py:

myvar = None

Main.py:

import variables
variables.myvar = True

Get_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":

{ "myvar": null }

然后在你的 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 作家: 由于您是在 Raspberry pi 上用 OpenOffice 编写所有这些内容,并且自己创建 json 文件时遇到问题(open office 假定它是一个编写器文档),您可以简单地允许 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 文件,然后从那里继续打开和关闭。