2017-03-13 8 views
0

私は通常、位置引数を必要とするスクリプトを持っています:some-script POS。しかし、 "--version"フラグが指定されている場合、私は位置指定の必要条件を "放棄"できるようにしたいと考えています:some-script --version位置引数をスキップするためのargparseフラグ

これを行うには、argparseフレームワークで適切な方法がありますか?

私は任意に"--version" in sys.argvを使用できますが、私はargparseを使用できるようにしたいと考えています。

+0

は?メッセージを出力して( 'help'のように)終了するか、' args'でいくつかの値を設定してください(例えば 'store_true') – hpaulj

答えて

2

version actionは、これが可能になることがあります: `VERSION`で発生するはずの何

parser.add_argument('--version', action='version', version='%(prog)s 1.0') 
1

nargs='?'を設定して位置引数をオプションにする必要があります。存在しない場合は、コードにエラーを発生させます。たとえば:

parser.add_argument('POSITIONAL', dest='positional', nargs='?') 
... 
if parsed.positional is None: 
    print('Positional argument "POSITIONAL" is required') 
    sys.exit(1) 
+0

残念なことに、私の場合は位置引数が必要です、そしてこれを捕まえるargparse提供されていない場合はエラーとなります。私はそれをオプションにすることはできません。また、複数の必要な定位置引数またはその他の複雑なロジックがある場合、これはスケーリングされません – erjoalgo

関連する問題