質問

Argparseがこれらの議論を解析しないのはなぜですか?

--foo 1 2 3 bar

使用

parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs='+')                  
parser.add_argument('bar')

次のエラーが発生します。

エラー:引数が少なすぎます

しかし、最初にバーの引数を渡すと、それは動作します:

bar --foo 1 2 3   

今、これ自体はそれほど悪くはありません。私は最初に位置的な議論をすることで生きることができます、それはこの行動が私たちのために作成するヘルプと矛盾しているということです。

使用法:argparsetest.py [-h] [ - foo foo [foo ...]] bar

では、一貫したヘルプテキストでこれをどのように機能させますか?

これが完全です テストプログラム.

役に立ちましたか?

解決

-input -Outputフラグを実行して、それらのオプションを設定して、add_argumentで必要な= trueに設定してみてください。

http://docs.python.org/dev/library/argparse.html#the-add-argument-method

他のヒント

nargs='+' Argparseに、残りのすべてのargを一緒に収集するように言うので、 bar 含まれています。あなたが意図する魔法の方法はありません bar それ自体によって意味のある議論であり、 --foo.

ドキュメントの例は、単純なものを指します --foo 議論、ではなく nargs='+'. 。違いを必ず理解してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top