1. ホーム
  2. python

[解決済み] オプション引数argparseが設定されているかどうかを確認する

2022-05-05 16:26:12

質問

オプションのargparse引数がユーザーによって設定されているかどうかを確認したい。

issetを使って安全にチェックできますか?

このようなものです。

if(isset(args.myArg)):
    #do something
else:
    #do something else

float / int / string 型の引数でも同じように動作するのでしょうか?

私はデフォルトのパラメータを設定し、それをチェックすることができました(例えば、myArg = -1、または文字列のための""、または"NOT_SET"を設定します)。 しかし、私が最終的に使用したい値は、スクリプトの後半で計算されるだけです。 そのため、デフォルトで-1に設定し、後で他の値に更新することになります。これは、値がユーザーによって設定されたかどうかを単純にチェックすることに比べて、少し不器用な感じがします。

どのように解決するのか?

オプションの引数( -- ) に初期化されます。 None は、それらが供給されない場合。ですから is not None . 以下の例を試してみてください。

import argparse

def main():
    parser = argparse.ArgumentParser(description="My Script")
    parser.add_argument("--myArg")
    args, leftovers = parser.parse_known_args()

    if args.myArg is not None:
        print "myArg has been set (value is %s)" % args.myArg