現在、無効なオプションを入力したり、位置引数を省略したりすると、argparse によってプロンプトに戻り、アプリの使用法が表示されます。これは問題ありませんが、ユーザーに入力を求めるよりも、完全なヘルプ リスト (オプションなどを説明するもの) を自動的に表示したいと思います。
./myscript.py -h
ありがとう!
ジェイミー
使用したいヘルプを印刷するには: print_help
function on ArgumentParser
instance
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)
このパーサーは、解析できない引数行に遭遇すると、ヘルプを出力します。
Googleグループのこのスレッドには、トリックを実行しているように見える次のコードスニペットがあります(わずかに変更されています)。
class DefaultHelpParser(argparse.ArgumentParser):
def error(self, message):
sys.stderr.write('error: %s\n' % message)
self.print_help()
sys.exit(2)