Importing any number of modules passed from the command line? (Boils down to `how to unstring a string?`)
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Dynamic module import in Python
我需要一个允许用户从命令行导入多个模块的功能。因此,首先,让我们设置代码,允许用户在列表中传递尽可能多的参数:
1 2 3 4 5 6 | import argparse parser = argparse.ArgumentParser() parser.add_argument("cmd", action="store", nargs='*') args = parser.parse_args() args_list = args.cmd |
我知道您可以使用此语法导入任意多个模块:
1 | import sys, os, math |
因此,现在我只需要找到一种方法,从具有模块名的字符串列表(
1 2 | for el in args_list: import unstring(el) |
使用此:
1 2 | for el in args_list: globals()[el] = __import__(el, globals(), locals()) |
您可能希望使用内置的
1 | __import__(el, globals(), locals()) |