26

現在、無効なオプションを入力したり、位置引数を省略したりすると、argparse によってプロンプトに戻り、アプリの使用法が表示されます。これは問題ありませんが、ユーザーに入力を求めるよりも、完全なヘルプ リスト (オプションなどを説明するもの) を自動的に表示したいと思います。

./myscript.py -h

ありがとう!

ジェイミー

4

5 に答える 5

33

使用したいヘルプを印刷するには: print_helpfunction on ArgumentParserinstance

parser = argparse.ArgumentParser()
(...)
parser.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)

このパーサーは、解析できない引数行に遭遇すると、ヘルプを出力します。

于 2013-02-16T16:07:50.130 に答える
17

Googleグループのこのスレッドには、トリックを実行しているように見える次のコードスニペットがあります(わずかに変更されています)。

class DefaultHelpParser(argparse.ArgumentParser):
    def error(self, message):
        sys.stderr.write('error: %s\n' % message)
        self.print_help()
        sys.exit(2)
于 2010-09-03T15:13:37.420 に答える