将 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.gateway
和 if args.matcheng
:
如果两个选项互斥,我想你想要这个:
if args.gateway and args.matcheng:
print 'error'
elif args.gateway:
...
elif args.matcheng:
...
我几乎是 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.gateway
和 if args.matcheng
:
如果两个选项互斥,我想你想要这个:
if args.gateway and args.matcheng:
print 'error'
elif args.gateway:
...
elif args.matcheng:
...