web-dev-qa-db-ja.com

引数なしのPython argparseコマンドラインフラグ

コマンドライン引数にオプションのフラグを追加する方法を教えてください。

例えば。だから私は書くことができます

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 この質問にはかなり不透明です。

270
interstar

あなたがそれを持っているように、引数wはコマンドラインで-wの後に値を期待しています。変数TrueまたはFalseを設定してスイッチを切り替えるだけの場合は、 http://docs.python.org/dev/library/argparse.html#action (特にstore_true)をご覧ください。そしてstore_false)

import argparse

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

編集:Svenが指摘したように、この場合のデフォルト値は不要です。

421
Jdog

実行する準備を整えるための簡単なスニペットを追加します。

出典:myparser.py

import argparse
parser = argparse.ArgumentParser(description="Flip a switch by setting a flag")
parser.add_argument('-w', action='store_true')

args = parser.parse_args()
print args.w

使用法

python myparser.py -w
>> True
32
user1767754