【问题标题】:execute python script with argparse inside python script在 python 脚本中使用 argparse 执行 python 脚本
【发布时间】:2013-02-14 16:07:36
【问题描述】:

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

提前致谢

【问题讨论】:

  • 当您在execfile 中输入arg.py 的完整路径作为参数时会发生什么?

标签: python argparse execfile


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多