2015-12-03 60 views
1

我幾乎是Python的初學者,所以我很抱歉如果這是一個非常愚蠢的問題。通過argparse子流程

我想根據用戶在命令行輸入的內容設置一個小腳本來啓動一個進程。但我不完全確定如何將我的argsparse變量傳遞給子流程命令。

我已經試過代碼如下:

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) 

會有人能夠指出我在正確的方向? THX

回答

2

只要改變if語句if args.gatewayif args.matcheng

如果兩個選項是互斥的,我想你想要這樣的:

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