我的python脚本必须在代码中包含其他python脚本。我希望其他脚本作为命令行参数传递。 例如: 我的脚本是test.py,我想根据命令行输入在我的代码中包含first.py. 命令行输入
python test.py first.py
在代码中我想要first.py导入,如:
先导入
但我无法找到方法。我尝试使用optparse和fileInput,但它们并没有成为我的预期。
答案 0 :(得分:1)
我不认为从参数导入模块是最佳做法,但如果你真的想这样做,可以尝试下面的代码:
import sys
for file_name in sys.argv[1:]:
module_name = file_name.replace('.py', '')
exec('import %s' % module_name)
答案 1 :(得分:0)
为什么原始代码中的简单导入语句不能完成这项工作?像这样:
import first
#
# The rest of the program.
#
然后从命令行,您只需要运行
python test.py
只要test.py和first.py位于同一目录中,这种方法就是有效的"包括" test.py中的first.py.请包含有关您希望将first.py作为命令行参数传递的原因的详细信息。在我看来,因为你已经知道你的程序将使用first.py做什么,并且你必须在假设first.py将被导入的情况下编写你的代码,你可能只是在开头做的test.py。
答案 2 :(得分:0)
python test.py first.py - 在这种情况下,test.py是argv [0],first.py是argv [1]
在test.py中添加以下代码
from sys import argv
execfile(argv[1])
答案 3 :(得分:0)
我不知道回答问题的最佳方式。但这是我的解决方案。同样,这可能不是最好的解决方案 -
module_name = input()
with open('file_name.py', 'w') as py_file:
py_file.write('import ' + module_name)