将 argparse 传递给子进程

Pass argparse to subprocess

我几乎是 Python 的初学者,所以如果这是一个非常愚蠢的问题,我深表歉意。

我正在尝试设置一个小脚本来根据用户在命令行输入的内容启动一个进程。但我不完全确定如何将我的 argsparse 变量传递给 subprocess 命令。

我试过的代码如下:

import argparse
import subprocess

parser = argparse.ArgumentParser()
parser.add_argument('-g', '--gateway')
parser.add_argument('-m', '--matcheng')
args = parser.parse_args()

if args is args.gateway:

    gw = args.gateway
    subprocess.Popen(['gw', gw, '-vi'], shell=True)

if args is args.matcheng:

    me = args.matcheng
    subprocess.Popen(['matchingengine', me, '-vi'], shell=True)

有人能给我指出正确的方向吗? 感谢

只需将 if 语句更改为 if args.gatewayif args.matcheng:

如果两个选项互斥,我想你想要这个:

if args.gateway and args.matcheng:
    print 'error'
elif args.gateway:
    ...
elif args.matcheng:
    ...