簡體   English   中英

和奇數的命令行界面來解析參數

[英]And odd command-line interface to parse arguments for

我已經得到了有一堆選項的Python程序的命令行界面(比如, --a--b--c ),但與其他交換機命令之間的一個開關。

因此,也許prog -S abc調用-S動作,而prog -Y abc調用-Y動作。 prog -Y abc --a=2 --b=3 ,則應使用參數ab以及位置參數abc調用-Y動作

有什么方法可以使argparsegetopt為我解析參數嗎? 還有其他圖書館可以很好地做到這一點嗎?

我認為在這種情況下使用argparse的子命令將很有用。

基本上,您可以創建一個主解析器,該解析器負責子命令的解析以及一些通用的常規選項,然后創建幾個子解析器(每個子命令一個),負責解析傳遞給子命令的特定選項。

我不確定這是否有幫助,但是到目前為止,我一直在編寫一個包裝器,該包裝器通過Web界面從XML設置參數,然后將其傳遞給命令:

顯然需要更復雜的參數字符串,但是為了舉例說明:

 def __main__():
 parser = optparse.OptionParser()
 parser.add_option( '-Q', '--ibmax', dest='ibmax', help='' )
 (options, args) = parser.parse_args()
 if options.ibmax != 'None' and int( options.ibmax ) >= 1:
                ibmax = '--bmax %s' % options.ibmax

 cmd1 = Popen([another.py, '-Q "%s"' % (options.ibmax),], stdout=PIPE).communicate()[0]
 process = subprocess.Popen(cmd1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

根據我的Web界面中的某些標志,更多選項會添加到arg列表中,因此會運行不同的命令。 將每個命令選項添加到解析器,然后檢查-Y或-S命令的值以設置vars並更改您需要傳遞的命令。

我希望這會有所幫助,但我不是python專業人士,這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM