如何从python3中的文本文件更新变量

时间:2018-12-07 06:38:22

标签: python python-3.x

因此,假设我有一个Shell脚本,该脚本在包含

的输出上生成v.py
v = some-float

我正在通过from v import v在main.py脚本中访问它 但是稍后,主脚本再次切换生成过程,并且v.py中的变量得到更新,但是主脚本的变量v没有更新。

要使主脚本正常工作,我需要在脚本运行时从v.py更新变量

我尝试过importlib.reload(v)-没用

我还是python的新手,并不完全了解它

1 个答案:

答案 0 :(得分:1)

假设您使用的是Python 3. *,则v必须是一个模块,因此导入它的方式将变为以下示例。

import v
import importlib

print(v.v)

with open('v.py', 'w') as f:
    f.write('v = 20.0')

importlib.reload(v)
print(v.v)

还要注意importlib

的文档

“重新加载模块时,将保留其字典(包含模块的全局变量)。名称的重新定义将覆盖旧的定义,因此通常没有问题。”

尽管我们的最小示例有效,但是对于更复杂的情况,这是要牢记的。