37

Python の argparse で、サブコマンドを必須の引数にするにはどうすればよいですか? サブコマンドが指定されていない場合に argparse がエラーになるようにしたいので、これを行います。エラー メソッドをオーバーライドして、代わりにヘルプを出力します。私は 3 つの深さでネストされたサブコマンドを持っているので、最上位レベルでゼロ引数を処理するだけの問題ではありません。

次の例では、これがそのように呼び出されると、次のようになります。

$./simple.py
$

代わりにやりたいことは、必要なサブコマンドが指定されていないことを argparse が不平を言うことです。

import argparse

class MyArgumentParser(argparse.ArgumentParser):
    def error(self, message):
        self.print_help(sys.stderr)
        self.exit(0, '%s: error: %s\n' % (self.prog, message))

def main():
    parser = MyArgumentParser(description='Simple example')
    subs = parser.add_subparsers()
    sub_one = subs.add_parser('one', help='does something')
    sub_two = subs.add_parser('two', help='does something else')

    parser.parse_args()

if __name__ == '__main__':
    main()
4

4 に答える 4

0

を使用してはrequired=Trueどうですか?詳細はこちら

于 2013-08-16T21:32:38.227 に答える