250

フラグのみが存在し、値が指定されていない場合はデフォルトで値になるオプションの引数が必要ですが、ユーザーが値を指定した場合は、デフォルトの代わりにユーザー指定の値を格納します。これに利用できるアクションはすでにありますか?

例:

python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2

アクションを作成することはできますが、これを行うための既存の方法があるかどうかを確認したいと思いました。

4

2 に答える 2

363
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--example', nargs='?', const=1, type=int)
args = parser.parse_args()
print(args)

% test.py 
Namespace(example=None)
% test.py --example
Namespace(example=1)
% test.py --example 2
Namespace(example=2)

  • nargs='?'0 または 1 の引数を意味します
  • const=1引数が 0 の場合のデフォルトを設定します
  • type=int引数を int に変換します

noを指定しても 1test.pyに設定したい場合は、 を含めます。つまり、example--exampledefault=1

parser.add_argument('--example', nargs='?', const=1, type=int, default=1)

それから

% test.py 
Namespace(example=1)
于 2013-03-08T18:52:43.553 に答える