1. ホーム
  2. python

[解決済み] シンプルなargparseの例題募集:1引数、3結果

2022-03-16 17:30:24

質問

その ドキュメンテーション のための argparse Python モジュール とはいえ、私の小さな初心者の脳みそでは、今ひとつピンとこない。私は、コマンドラインで計算をしたり、画面上の行の書式設定をいじったり、オプション文字を変更したりする必要はありません。私がしたいのは argがAならこうして、Bならこうして、どれもダメならヘルプを表示して終了"。 .

解決するには?

元の質問に対する私の理解は、2つあります。まず、最も単純なargparseの例という点では、ここで見たことがないことに驚いています。もちろん、死ぬほど単純であるために、それはまた、小さなパワーですべてのオーバーヘッドですが、それはあなたが始めるかもしれません。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("a")
args = parser.parse_args()

if args.a == 'magic.name':
    print 'You nailed it!'

しかし、この位置の引数が必要になったのです。このプログラムを起動するときにこれを省くと、引数が足りないというエラーが出ます。これが、最初の質問の2番目の部分につながる。Matt Wilkieは、単一の オプション 引数には、名前付きラベル(--オプション・ラベル)を使用しないでください。私の提案は、上記のコードを次のように修正することです。

...
parser.add_argument("a", nargs='?', default="check_string_for_empty")
...
if args.a == 'check_string_for_empty':
    print 'I can tell that no argument was given and I can deal with that here.'
elif args.a == 'magic.name':
    print 'You nailed it!'
else:
    print args.a

もっとエレガントなソリューションがあるかもしれませんが、これは機能的で最小限のものです。