gpt4 book ai didi

python - 导入语句python中的变量

转载 作者:行者123 更新时间:2023-11-28 22:33:17 24 4
gpt4 key购买 nike

我正在尝试将我的脚本从 bash 转换为 python。该程序的工作方式是在顶级文件夹中有一个 Master 脚本,然后在子文件夹 Scripts 中有一系列更小、更专业的脚本。这些较小的脚本可能具有诸如 foo_bar.x、bar_foo.x、foo_baz.x、foo_qux.x、bar_qux.x 等名称。 Master 脚本将收集变量(在文件中或命令行参数中定义)并使用这种语法执行适当的脚本:

VAR1=foo
VAR2=bar
./Scripts/${VAR1}_${VAR2}.x

这将执行 Scripts/foo_bar.x

现在我正在尝试做同样的事情,但在 python 中。这些脚本现在是名为 foo_bar.py、foo_qux.py 等的文件夹模块中的模块。目前,他们唯一拥有的是:

def test():
print "This is foo_bar."

(或任意一个)。

如果使用这些命令,会发生这种情况:

>>> import Modules.foo_bar
>>> Modules.foo_bar.test()
This is foo_bar.
>>> import Modules.foo_qux
>>> Modules.foo_qux.test()
This is foo_qux.
>>> a = Modules.foo_bar
>>> a.test()
This is foo_bar.

这很好。但是,如果我想在 import 语句中使用变量,我就无法获得正确的语法。第一个变量定义为命令的字符串输出,第二个变量是字典条目。尝试在导入命令中使用它们会出错。

>>> var1 = a_file.read_value()
>>> print var1
foo
>>> print dict['var2']
bar
>>> import Modules.var1_dict['var2']
File "<stdin>", line 1
import Modules.var1_dict['var2']
^
SyntaxError: invalid syntax

我认为这是使用正确的引号或括号来正确调用变量的问题。我尝试了一堆组合,包括单引号、大括号、方括号等等,但没有骰子。我错过了什么?

最佳答案

您可以使用importlib 库。并像这样使用:

...
import importlib
...

function_call = 'Modules.' + var1 + dict['var2']
function_call = importlib.import_module(function_call)
function_call.test()

关于python - 导入语句python中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40100419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com