通常、サブパーサーを追加するには、次のargparse
ことを行う必要があります。
parser = ArgumentParser()
subparsers = parser.add_subparser()
subparser = subparsers.add_parser()
私が抱えている問題は、メイン スクリプトのサブコマンドとして、独自のパーサーを備えた別のコマンド ライン スクリプトを追加しようとしていることです。これを行う簡単な方法はありますか?
編集:明確にするために、script.py
次のようなファイルがあります。
def initparser():
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar')
return parser
def func(args):
#args is a Namespace, this function does stuff with it
if __name__ == '__main__':
initparser().parse_args()
だから私はこれを次のように実行できます:
python script.py --foo --bar
いくつかのサブコマンドを備えたコマンドラインインターフェイスであるモジュールを作成しようとしているapp.py
ので、次のようなものを実行できます。
python app.py script --foo --bar
initparser()
すべてのロジックを にコピー アンド ペーストするのではなく、app.py
initparser() から作成したパーサーをサブパーサーとして直接使用できるようにしたいと考えています。これは可能ですか?