2017-10-12 124 views
0

我目前正在對現有庫進行擴展,該庫使用argparse.ArgumentParser()來獲取cli參數,並且使用parse_known_args()添加了我自己的argparse.ArgumentParser(),以便在傳遞其餘參數之前解析出我想要注入的參數到現有圖書館的實施。我這樣做,而不是將參數添加到底層庫,以便如果底層庫更改,一切都應該仍然工作。Argparse combine --help僞指令

但是,當我傳遞--help標誌時,我的argparse.ArgumentParser()實現抓取該標誌,爲我注入的參數打印出幫助,然後中斷執行,因此它永遠不會獲取底層庫的幫助消息。

我無法確定是否有一種方法可以將argparse.ArgumentParser()實現(如果甚至可能)的幫助指令組合起來,或者如何忽略實現中的幫助標誌。我添加的參數僅用於調試,對於向擴展庫的最終用戶顯示並非至關重要,所以如果有一種方法可以忽略實現中的幫助標誌,那可以,但不是很理想。

+1

聽起來像['add_help = False']的工作(https://docs.python.org/2/library/argparse.html#add-help)。 – user2357112

回答

0

我想這可能是你的問題的答案。 add_help = False,但添加到子命令和子分析器。 Python argparse - disable help for subcommands?

+0

不完全一樣,這適用於argparse中的子處理器。但是,我確實認爲將模型更改爲使用子處理器可能是我在「組合」所定義的argparse實現時所尋找的。我會嘗試一下。 – asdf

+0

讓我知道它是否有效。這就是我的想法。 – jimh