argparse オプション引数が設定されているかどうかを確認する 質問する

argparse オプション引数が設定されているかどうかを確認する 質問する

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

issetを使って安全に確認できますか?

このようなもの:

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

これは float / int / string 型の引数でも同じように機能しますか?

デフォルトのパラメータを設定して確認することもできます (例: myArg = -1 に設定するか、文字列の場合は ""、または "NOT_SET" に設定します)。ただし、最終的に使用したい値は、スクリプトの後半でのみ計算されます。したがって、デフォルトとして -1 に設定し、後で別の値に更新することになります。これは、値がユーザーによって設定されたかどうかを単純に確認するのに比べると、少し扱いに​​くいようです。

ベストアンサー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

おすすめ記事