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

时间:2020-07-27 10:49:46

标签: python python-3.x file variables python-3.5

有没有一种方法可以永久更改变量,因此在代码完成后它不会重置?我有以下代码:

variables.py:

myvar = None

Main.py:

import variables
variables.myvar = True

Get_variable.py:

import variables
print(variables.myvar)

输出:

None

我希望它打印True

2 个答案:

答案 0 :(得分:2)

我认为这是不可能的(无需在第二个脚本中重写整个python脚本即可将整个内容写回到文件中),但是还有另一种方法可以做到这一点。除了将变量存储在python脚本中之外,您还可以将变量存储在另一种文件中,例如json。您可能有“ 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 WRITER: 由于您是在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文件,然后从那里继续打开和关闭。

答案 1 :(得分:-3)

您可以更改文件:

instance.branch = new value of branch 
instance.save()
return instance

那应该更改实际文件。