1. ホーム
  2. python

[解決済み] Python argparse 引数なしのコマンドラインフラグ

2022-03-23 18:58:38

質問

コマンドラインの引数にオプションのフラグを追加するにはどうすればよいですか?

例えば、次のように書くことができます。

python myprog.py 

または

python myprog.py -w

試してみた

parser.add_argument('-w')

しかし、次のようなエラーメッセージが表示されるだけです。

Usage [-w W]
error: argument -w: expected one argument

というのは、-wオプションの引数値が欲しいということだと思います。フラグだけ受け取る方法ってなんだろう?

私が見つけたのは http://docs.python.org/library/argparse.html この質問については、かなり不透明です。

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

そのままでは、引数 w の後の値を期待しています。 -w をコマンドライン上で実行します。単に変数をセットしてスイッチを切り替えるだけなら True または False をご覧ください。 こちら (具体的にはstore_trueとstore_false)

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-w', action='store_true')

ここで action='store_true' を意味します。 default=False .

逆に action='store_false' を意味する。 default=True .