我想编写一个函数,该函数接受变量名,文件名和第三个字符串,然后尝试从文件中导入给定的变量,如果不能这样做,则将变量设置为第三个字符串。让我给你演示。这是在我的config.py中:
variable = 'value'
这是我的功能(不起作用):
#!/usr/bin/python
def importvar (var, fname, notfound) :
try:
from fname import var
except:
var = notfound
return var;
value = importvar ('variable', 'config', 'value not found')
print value #prints 'value not found'
这是我要实现的目标:
from config import variable
print variable #prints 'value'
这个问题类似于“如何在python中使用变量名作为变量?”,但是我发现的答案似乎并不适合我。我不一定需要将它们存储在变量中,但是我无法提出更好的选择。我知道这是“您不应该在python中执行的操作”的完美示例,但是我仍然需要它。谢谢您的帮助!
您要做的是从描述模块路径的字符串开始动态导入模块。您可以通过使用做到这一点import_module从导入库包。
import importlib
def importvar (var, fname, notfound) :
try:
return getattr(importlib.import_module(fname), var)
except:
return notfound
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句