2010-09-03 82 views
13

當前,當我輸入無效選項或省略位置參數時,argparse會將我踢回提示並顯示我的應用程序的用法。這是確定的,但我寧願自動顯示完整的幫助上市(即解釋了這些選項等),不是要求用戶輸入python argparse:如何在錯誤時自動顯示幫助?

./myscript.py -h

謝謝!

傑米

+0

又見更多信息這太問題:http://stackoverflow.com/questions/4042452][1] [1]:http://stackoverflow.com/questions/4042452 – jpoppe 2012-02-21 09:19:14

回答

13

thread了在谷歌羣體具有下面的代碼片段,似乎這樣的伎倆(略有修改)。

class DefaultHelpParser(argparse.ArgumentParser): 
    def error(self, message): 
     sys.stderr.write('error: %s\n' % message) 
     self.print_help() 
     sys.exit(2) 
+3

在這裏使用'self.print_help(sys.stderr)'是否合理? – 2014-11-24 13:31:18

20

要打印您可能需要使用幫助:ArgumentParser例如

parser = argparse.ArgumentParser() 
(...) 
parser.print_help() 

print_help功能要打印錯誤,您需要創建ArgumentParser例如,重寫error()方法的自己的子類的幫助信息。例如,如下所示:

class MyParser(argparse.ArgumentParser): 
    def error(self, message): 
     sys.stderr.write('error: %s\n' % message) 
     self.print_help() 
     sys.exit(2) 

當此解析器遇到不可分析的參數行時,它將打印幫助。