在python脚本中使用argparse执行python脚本

时间:2013-02-14 16:07:36

标签: python argparse execfile

我有两个不同的python脚本,第一个是使用argparse获取一些额外的参数(我将其称为arg.py),第二个是我的主脚本(main.py)。
我想在main.py中调用arg.py,但我不知道该怎么做。我看一下命令execfile,但我没有设法让它工作 我试着把 execfile('arg.py -h')
在main.py但python尝试找到不存在的文件'arg.py -h'。有谁知道这是怎么做到的吗 ?

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用subprocess.callsubprocess.Popen将其作为单独的流程运行。如果您不想将其作为子进程运行,则会开始变得更复杂(取决于arg.py脚本的结构。

execfile将传递给它的文件包含在当前脚本中 - 就像c / c ++中的#include预处理器指令一样(尽管这是动态完成的)。使用execfile的一个非常难看的选项是:

#completely untested.
import sys
def run_script(script_name,*args):
    _argv = sys.argv[:]
    sys.argv = list(args)
    execfile(script_name)
    sys.argv = _argv