Pythonコマンドラインパラメータ解析モジュールargparse
11604 ワード
前言
詳細については、私の個人ブログにアクセスしてください.
以前は
基本的な使い方
標準ライブラリであるため、インストールする必要はなく、直接使用します.
次のように、上記のコードを実行します.パラメータを入力せず、出力結果もない: デフォルトパラメータ .エラーパラメータを入力すると、エラーメッセージが出力されます: 解析の作成
新しい に含める必要があります. . を追加 を許可します.
prog
デフォルトでは、
usage
次のように使用方法メッセージを構築します.
description
この程度で何をするか、どのようにするかを簡単に説明します.ヘルプ・メッセージでは、コマンド・ラインの使用文字列と、次のようにさまざまなパラメータのヘルプ・メッセージの間に説明が表示されます.
epilog
いくつかのプログラムはdescriptionパラメータの後に追加のプログラムの説明を表示するのが好きです.以下のようにします.
add_help
自動生成されたヘルプ情報を閉じるかどうかは、次のとおりです.
パラメータの追加
name or flags
action
転載先:https://juejin.im/post/5cf4bdfae51d4510bf1d662f
詳細については、私の個人ブログにアクセスしてください.
以前は
optparse
が比較的火だったがpython 2.7バージョン以降、公式はこのモジュールを維持せず、argparse
を強力にサポートしています.argparse
モジュールは、ユーザーに優しいコマンドラインインタフェースを簡単に作成できます.彼女はsys.argv
からパラメータを解析し、ヘルプとマニュアルを自動的に生成し、無効なパラメータが入力されたときにエラー情報を表示することができます.基本的な使い方
標準ライブラリであるため、インストールする必要はなく、直接使用します.
import argparse
parser = argparse.ArgumentParser()
# parser.add_argument("-i", "--info", action = "store", type = "string", dest = "sample_info", help = "the sample information")
args = parser.parse_args()
# print(args.sample_info)
次のように、上記のコードを実行します.
$ python3 test.py
--help
(-h
と略すこともできる)を入力と、自動的に生成するヘルプ情報が出力されます:$ python3 test.py --help
# :
usage: test.py [-h]
optional arguments:
-h, --help show this help message and exit
$ python3 test.py -verbose
# :
usage: test.py [-h]
test.py: error: unrecognized arguments: --verbose
argparse
を使用する最初のステップは、次のようにArgumentParser
オブジェクトを作成することです.import argparse
parser = argparse.ArgumentParser(prog=None, usage=None,description=None,
epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None,
argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)
新しい
ArgumentParser
オブジェクトを作成します.すべてのパラメータはキーワードパラメータとして入力する必要があります.一部のパラメータについては、以下により詳細に説明しますが、簡単に言えば、次のとおりです.prog
-プログラムの名前(デフォルト:sys.argv[0])usage
-プログラムの使用を記述する文字列(デフォルト:解析器に追加されたパラメータから生成)description
-パラメータヘルプドキュメントの前に表示されるテキスト(デフォルト:なし)epilog
-パラメータヘルプドキュメントの後に表示されるテキスト(デフォルト:なし)parents
-ArgumentParserオブジェクトのリストです.これらのパラメータもformatter_class
-ヘルプドキュメントの出力フォーマットをカスタマイズするクラスprefix_chars
-オプションパラメータの接頭辞文字セット(デフォルト:'-')fromfile_prefix_chars
-ファイルから他のパラメータを読み込む必要がある場合、ファイル名を識別するためのプレフィックス文字のセット(デフォルト:None)argument_default
-パラメータのグローバルデフォルト(デフォルト:None)conflict_handler
-競合オプションを解決するためのポリシー(通常は不要)add_help
-解析器に-h/--helpオプション(デフォルト:True)allow_abbrev
-省略が曖昧でない場合は、省略長オプション(デフォルト:True)prog
デフォルトでは、
ArgumentParser
オブジェクトがヘルプメッセージに表示するプログラム名はsys.argv[0]
です.プログラム名をカスタマイズするには、次のようにprog
を使用します.>>> parser = argparse.ArgumentParser(prog='myprogram')
>>> parser.print_help()
usage: myprogram [-h]
optional arguments:
-h, --help show this help message and exit
sys.argv[0]
またはprog=
パラメータから決定されたプログラム名は、以下のように、ヘルプメッセージに%(prog)s
フォーマット列で参照できます.>>> parser = argparse.ArgumentParser(prog='myprogram')
>>> parser.add_argument('--foo', help='foo of the %(prog)s program')
>>> parser.print_help()
usage: myprogram [-h] [--foo FOO]
optional arguments:
-h, --help show this help message and exit
--foo FOO foo of the myprogram program
usage
次のように使用方法メッセージを構築します.
>>> parser = argparse.ArgumentParser(prog='PROG', usage='%(prog)s [options]')
>>> parser.add_argument('--foo', nargs='?', help='foo help')
>>> parser.add_argument('bar', nargs='+', help='bar help')
>>> parser.print_help()
usage: PROG [options]
positional arguments:
bar bar help
optional arguments:
-h, --help show this help message and exit
--foo [FOO] foo help
description
この程度で何をするか、どのようにするかを簡単に説明します.ヘルプ・メッセージでは、コマンド・ラインの使用文字列と、次のようにさまざまなパラメータのヘルプ・メッセージの間に説明が表示されます.
>>> parser = argparse.ArgumentParser(description='A foo that bars')
>>> parser.print_help()
usage: argparse.py [-h]
A foo that bars
optional arguments:
-h, --help show this help message and exit
epilog
いくつかのプログラムはdescriptionパラメータの後に追加のプログラムの説明を表示するのが好きです.以下のようにします.
>>> parser = argparse.ArgumentParser(
... description='A foo that bars',
... epilog="And that's how you'd foo a bar")
>>> parser.print_help()
usage: argparse.py [-h]
A foo that bars
optional arguments:
-h, --help show this help message and exit
And that's how you'd foo a bar
add_help
自動生成されたヘルプ情報を閉じるかどうかは、次のとおりです.
>>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
>>> parser.add_argument('--foo', help='foo help')
>>> parser.print_help()
usage: PROG [--foo FOO]
optional arguments:
--foo FOO foo help
パラメータの追加
add_argument()
メソッドを使用してパラメータを追加します.ここで、一部のパラメータについては、以下により詳細に説明しますが、簡単に言えば、以下のとおりです.name or flags
-fooまたは-fなどの名前またはオプション文字列のリスト.action
-パラメータがコマンドラインに表示されたときに使用される動作の基本タイプ.nargs
-コマンドラインパラメータが消費すべき数.const
−いくつかのactionおよびnargsによって所望の定数が選択される.default
-パラメータがコマンドラインに表示されない場合に使用される値.type
-コマンドラインパラメータが変換されるべきタイプ.choices
-使用可能なパラメータの容器.required
-このコマンド・ライン・オプションが省略可能かどうか(オプションのみ使用可能).help
-このオプションの役割の簡単な説明です.metavar
-使用方法メッセージで使用されるパラメータ値の例.dest
-parse_に追加されましたargs()が返すオブジェクトのプロパティ名.name or flags
add_argument()
に渡される最初のパラメータは、次のように、flagsまたは単純なパラメータ名でなければなりません.>>> parser.add_argument('-f', '--foo')
or
>>> parser.add_argument('bar')
action
store
-パラメータの値を格納します.これはデフォルトの動作です.>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.parse_args('--foo 1'.split())
Namespace(foo='1')
store_const
-constネーミングパラメータによって指定された値を格納します.store_const
動作は、通常、いくつかのフラグを指定するためにオプションで使用される.>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='store_const', const=42)
>>> parser.parse_args(['--foo'])
Namespace(foo=42)
store_true
およびstore_false
-store_const
およびTrue
の値を格納するために使用されるFalse
の特別な例である.また、デフォルト値はそれぞれFalse
とTrue
です.>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='store_true')
>>> parser.add_argument('--bar', action='store_false')
>>> parser.add_argument('--baz', action='store_false')
>>> parser.parse_args('--foo --bar'.split())
Namespace(foo=True, bar=False, baz=True)
append
-リストを格納し、各パラメータ値をリストに追加します.オプションを複数回使用できる場合に便利です.>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])
count
-キーワードパラメータの出現数または回数を計算します.たとえば、成長の詳細レベルに役立ちます.>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--verbose', '-v', action='count')
>>> parser.parse_args(['-vvv'])
Namespace(verbose=3)
version
-version=
呼び出し中のadd_argument()
ネーミングパラメータが所望され、バージョン情報が印刷され、呼び出し後に終了する.>>> import argparse
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('--version', action='version', version='%(prog)s 2.0')
>>> parser.parse_args(['--version'])
PROG 2.0
転載先:https://juejin.im/post/5cf4bdfae51d4510bf1d662f