如何根据命令行输入包含py文件?

时间:2017-12-28 04:46:44

标签: python python-2.7 command

我的python脚本必须在代码中包含其他python脚本。我希望其他脚本作为命令行参数传递。 例如: 我的脚本是test.py,我想根据命令行输入在我的代码中包含first.py. 命令行输入

  
    
      

python test.py first.py

    
  

在代码中我想要first.py导入,如:

先导入

但我无法找到方法。我尝试使用optparse和fileInput,但它们并没有成为我的预期。

4 个答案:

答案 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)