python共通ライブラリまとめ:argparseライブラリargparseライブラリ
28348 ワード
深さ学習スクリプトを書くときは、さまざまなパラメータを設定する必要がありますが、手動でコードを変更していますか?じゃ、アウトにして、急いでargparseライブラリの使用を学びましょう. pythonのargparseライブラリは、コマンドラインパラメータの解析ツールです.このライブラリを使用すると、コマンドラインでスクリプトを実行するときにパラメータを設定し、スクリプトに必要なパラメータを柔軟に設定できます.次にargparseライブラリの使い方をまとめます.
parseオブジェクトの作成
argparseライブラリはpythonが持参したライブラリであり、使用時に直接
add_の使用Argument()メソッドパラメータの追加
次に、
属性値
さぎょう
type
パラメータ格納時のタイプを指定し、
action
パラメータを指定する動作は、
default
パラメータのデフォルト値の指定
dest
パラメータの保存場所を指定し、
choice
パラメータのオプションを指定します.パラメータは設定値からのみ選択できます.
required
パラメータが必要かどうかを説明するには、
help
パラメータの説明、ユーザーが
type
action
store_const
は簡単で、このパラメータの値を定数に設定し、
store_true/store_false
append
count
名前の通り、パラメータの出現回数を統計します.
default
パラメータのデフォルト値を設定する、すなわち、パラメータが入力されていない場合、パラメータのデフォルト値は
dest
dest宣言の変数として格納されるパラメータの格納場所を指定します.
choice
ユーザが入力するパラメータはchoicesで規定されているものに限られ,ユーザの入力を制限することができる.プログラムをよりロバストにする
required
このパラメータが必須かどうかを設定し、
help
パラメータ設定ヘルプ情報は、ヘルプドキュメントに相当するパラメータをどのように入力すべきかをユーザーに伝えるプロンプトを書き込むことができます.
parse_でArgs()メソッド解析パラメータ
パラメータを追加した後、最後に
まとめ
総じて言えば、argparseライブラリの使い方はまだ馬鹿で、もしマスターしたら、おめでとうございます.コードの中でパラメータを修正する必要はありません.
parseオブジェクトの作成
argparseライブラリはpythonが持参したライブラリであり、使用時に直接
import argparse
で使用できます.最初のステップでは、ArgumentParser
オブジェクトを作成します(設定されたパラメータは最終的にArgumentParserオブジェクトのプロパティとして使用され、ArgumentParser.xxxxxなどの呼び出し方法として使用されます).また、description
パラメータに追加したいプロンプト情報を入力できます.import argparse
parser = argparse.ArgumentParser(description='add some useful information here....')
add_の使用Argument()メソッドパラメータの追加
ArgumentParser
オブジェクトを作成すると、add_argument()
メソッドを使用してパラメータを追加できます.このパラメータは、[]
のパラメータがオプションで、パラメータを設定するいくつかの属性として機能する入力パラメータです.add_argument()
の最初の入力パラメータは、-
接頭辞、例えば'foo'
が前にない場合は位置パラメータであり、-
接頭辞がある場合は--foo
のようなオプションパラメータである.位置パラメータとオプションパラメータの概念はここでは説明しません.ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default]
[, type][, choices][, required][, help][, metavar][, dest])
import argparse
parser = argparse.ArgumentParser(description='arugment test')
parser.add_argument('foo') #
parser.add_argument('--foo2') #
次に、
add_argument()
メソッドでよく使用される属性をまとめます.属性値
さぎょう
type
パラメータ格納時のタイプを指定し、
int、float、str
等action
パラメータを指定する動作は、
store_const、store_true/store_false、append、count
’とすることができるdefault
パラメータのデフォルト値の指定
dest
パラメータの保存場所を指定し、
'ddd'
を設定すると、parser.ddd
によりそのパラメータ値を取得するchoice
パラメータのオプションを指定します.パラメータは設定値からのみ選択できます.
required
パラメータが必要かどうかを説明するには、
True\False
に設定できます.help
パラメータの説明、ユーザーが
--help\-h
を入力すると、設定されたヘルプ情報が表示されますtype
ArgumentParser
に追加されたパラメータのデフォルト記憶タイプはstr
であり、他の方法で記憶する場合は、type
の属性を設定することによって指定されたタイプで記憶する必要があります.コードと実行結果は次のとおりです.parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
description='Create an image list or \
make a record database by reading from an image list'
)
parser.add_argument('--foo')
parser.add_argument('--foo2', type=int)
parser.add_argument('--foo3', type=float)
args = parser.parse_args()
print('foo is', type(args.foo))
print('foo2 is', type(args.foo2))
print('foo3 is', type(args.foo3))
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo 1.1 --foo2 1 --foo3 0.1
foo is <class 'str'>
foo2 is <class 'int'>
foo3 is <class 'float'>
action
action
は、パラメータの動作を設定することができ、すなわち、オプションパラメータを入力すると、パラメータが行う動作である.store_const
は簡単で、このパラメータの値を定数に設定し、
const
の属性と組み合わせて使用し、初期化時にconst
に設定した値を付与し、その後、プログラムでパラメータ値の変更を許可しないため、一部のユーザーの誤操作を制限することができ、コードと実行結果は以下の通りである.parser.add_argument('--foo',action='store_const',const='this is a constant')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo
foo is this is a constant
store_true/store_false
store_true
は、パラメータが出現した場合に設定される値がtrue
であり、そうでなければfalse
であることを示す.store_false
は反対です.parser.add_argument('--foo',action='store_true')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo
foo is True
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py
foo is False
append
append
を使用すると、コマンドラインにパラメータに複数の値を割り当てることができ、これらの値は1つのリストに保存されます.parser.add_argument('--foo',action='append')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo 1,23,5
foo is ['1,23,5']
count
名前の通り、パラメータの出現回数を統計します.
parser.add_argument('--foo',action='count')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo --foo --foo
foo is 3
default
パラメータのデフォルト値を設定する、すなわち、パラメータが入力されていない場合、パラメータのデフォルト値は
default
に設定された値を格納する、非常に実用的な属性である.parser.add_argument('--foo',type=str,default='default value')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py
foo is default value
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo not-default
foo is not-default
dest
dest宣言の変数として格納されるパラメータの格納場所を指定します.
parser.add_argument('--foo',type=str,dest='foo_dest')
args = parser.parse_args()
print('foo is', args.foo_dest) # foo_dest
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo dest_test
foo is dest_test
choice
ユーザが入力するパラメータはchoicesで規定されているものに限られ,ユーザの入力を制限することができる.プログラムをよりロバストにする
parser.add_argument('--foo', type=int,choices=[5,6,7,8])
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo 5
foo is 5
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py --foo 1
usage: arg_test.py [-h] [--foo {5,6,7,8}]
arg_test.py: error: argument --foo: invalid choice: 1 (choose from 5, 6, 7, 8)
required
このパラメータが必須かどうかを設定し、
True
の場合、ユーザーは必ずこのパラメータを入力する必要があります.parser.add_argument('--foo', type=int,required=True)
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py
usage: arg_test.py [-h] --foo FOO
arg_test.py: error: the following arguments are required: --foo
help
パラメータ設定ヘルプ情報は、ヘルプドキュメントに相当するパラメータをどのように入力すべきかをユーザーに伝えるプロンプトを書き込むことができます.
parser.add_argument('--foo', type=int,
help = 'add some helpful message here.')
args = parser.parse_args()
print('foo is', args.foo)
C:\Users\lenovo\Desktop\arg_test>py -3 arg_test.py -h
usage: arg_test.py [-h] [--foo FOO]
Create an image list or make a record database by reading from an image list
optional arguments:
-h, --help show this help message and exit
--foo FOO add some helpful message here. (default: None)
parse_でArgs()メソッド解析パラメータ
パラメータを追加した後、最後に
parse_args()
メソッドを呼び出すと、ネーミングスペース(namespace)が返され、その後、各設定されたパラメータを楽しく呼び出すことができます.def parse_arg():
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
description='Create an image list or \
make a record database by reading from an image list'
)
parser.add_argument('--foo', type=int,
help='add some helpful message here.')
# parser.add_argument('--foo2', type=int)
# parser.add_argument('--foo3', type=float)
#namespace
args = parser.parse_args()
return args
まとめ
総じて言えば、argparseライブラリの使い方はまだ馬鹿で、もしマスターしたら、おめでとうございます.コードの中でパラメータを修正する必要はありません.