[英]how to pass value of a variable to import statement in python
我是python的新手。 我正在使用python <2.7。 我必须在开始时导入一个名字我不知道的文件。 实际上我必须通过命令提示符传递文件名,现在我已经读取了名称并存储在变量中,但我不知道如何将它传递给import语句。 我正在尝试代码
str = sys.argv[lastIndex]
from "%s" import *,str
但它给出了错误
File "IngestDataToMongo.py", line 86
from "%s" import *,str
^
SyntaxError: invalid syntax
那怎么做呢。 也可以使用python <2.7,因为由于某些原因我无法更改Python的版本或安装运行此代码的任何内容。
您可以使用__import__()
函数来导入模块。 它接受变量作为参数。
但首先,确保你真的需要它 - 有90%的时间人们并不真正需要这个功能。
如果您不想导入importlib
模块,则执行以下操作:
import sys
s = sys.argv[lastIndex]
def is_save(s):
#test if s is a valid argument
return True or False
if is_save(s):
exec('from %s import *'%s)
注意:需要使用is_save
函数来避免滥用脚本,因为exec
(或eval
)的使用具有潜在的危险性 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.