24

プラグインを呼び出す特定の設定ファイルがあります。それらのプラグインに引数を渡すことは可能です。この構成ファイルを使用すると、実行時に任意のコマンドを呼び出すこともできます。

プラグインは多くの引数を使用します。そのうちの1つはで-hあり、はを表しません--help。さて、私の問題は、自分のPythonスクリプトを呼び出して、それにいくつかの引数を渡したいということです。argparseを使用していて、残りの構成との一貫性を保ちたいので、-hフラグを作成しました。驚いたことに、argparseはargparse.ArgumentError: argument -h/--help: conflicting option string(s): -h、自分のビジネスを気にする代わりに、私に与えてくれます。

これを防ぐ方法はありますか?

ほとんどの人が助けを期待していることはよく知ってい-hますが、それは私自身のスクリプトであり、argparse開発者よりもフラグを何に使用したいかをよく知っていると思います。

4

3 に答える 3

32

argparseのドキュメントでArgumentParser引数を確認してください。add_helpと呼ばれるものがあります。デフォルトはTrueです。

parser = argparse.ArgumentParser('Cool', add_help=False)
parser.add_argument('-h', '--hi', action='store_true', dest='hi')

これは期待どおりに機能します。

于 2013-02-19T06:17:34.193 に答える
11

ArgumentParserにconflict_handler="resolve"引数を指定すると、-helpを機能させたまま、独自の-hを追加すると既存の引数が上書きされます。

#!/usr/bin/env python3
import argparse
parse = argparse.ArgumentParser(conflict_handler="resolve")
parse.add_argument("-h", "--hello")
print(parse.parse_args())
于 2019-03-12T15:11:45.920 に答える
10

そのようなものを抑制するためのkwargがあります(docs)。
次のようにパーサーを作成します。

parser = argparse.ArgumentParser(prog='PROG', add_help=False)
于 2013-02-19T06:15:20.353 に答える