2015-08-21 63 views
1

我正在尋找一個很好的模塊已經在那裏解析自定義CLI接口上的參數。如果你能想象有一個命令行,讓你一個提示:Python CLI框架和參數分析與選項卡完成

framework> commands go here.... 

它開始變得乏味,當你在參數添加,例如:

framework> command <argument1> <argument2> ... 

我想知道是否有任何類型的模塊不僅可以很容易地創建這些CLI接口,而且還可以爲命令鏈中的每個參數提供標籤填充。每當我創建這樣的東西時,我都厭倦了重新發明輪子!

framework> comma<tab> 
framework> command arg<tab> 
framework> command argument parame<tab> 
framework> command argument parameter 

你明白了。如果沒有模塊已經出現在這種情況下,任何關於以模塊化方式創建類似內容的優雅解決方案的任何建議,將不勝感激。

請注意,我不想解析通過父進程命令shell(如bash)傳入的參數,我想在腳本本身內的無限while循環內執行處理。例如:

while (True): 
    cmd = raw_input("framework> ") 
    framework.process_command(cmd) 

回答

1

看看點擊,「Python包在一個組合的方式根據需要儘可能少的代碼創建優美的命令行界面」:http://click.pocoo.org/5/

+0

除非我弄錯了,否則這隻允許您與父進程的命令行(如bash)傳入的參數進行交互。我想到的是在無限循環或其他東西中陷入輸入的東西,並且從腳本內部執行處理,而不是通過shell的命令行作爲系統參數傳入。 –

0

看起來。它支持命令和參數的選項卡完成。這是PyMOTW的tutorial。另一個例子here

如果您需要更多定製,還有cmd2,它擴展了內置cmd。