Python动态导入文件

3
我希望能够在Python中导入一个文件,其源是一个经常修改的文本文件。
换句话说,假设我有一个名为dados.py的文件,在某个时刻它的内容如下:
x=[2, 3, 7, 9]

(这是文件中唯一的一行(可能吗?))

我的主程序有这一行

import dados

我想要的是,当导入完成后,我将拥有一个包含上述值的数组。
但是,如果文件“dados.py”的值发生更改,则下一次运行主程序时,它将使用新值。
问题在于我不知道是否可以有一行带有变量的代码,并且Python会认识到它必须执行这行代码。
我试图详细解释的问题是,因为我曾经有一个工作正常的程序,其中源代码中写着x=[2, 3, 7, 9]。当我用以下内容替换该行时:
import dados

当你在编写 Python 代码时,如果出现以下错误信息,

Python 将会抱怨:

File "testinclude.py", line 15, in <module>
    print(x)
NameError: name 'x' is not defined

1
你需要输入 print(dados.x) - OneCricketeer
2个回答

2

你的变量是在一个模块中定义的,因此你必须对变量进行命名空间处理。

import dados
print(dados.x)

或者你可以从dados中导入x

另一个解决方案是使用一些JSON或其他配置文件,然后读取和加载它。不清楚为什么需要一个Python文件来定义变量。


1
from dados import x* - Joran Beasley

0
在这种情况下,最好使用文件而不是Python模块。但是,如果您坚持使用模块,可以将数据存储在变量中,并使用“.”运算符访问它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接