Python で Argparse の引数を確認する
このチュートリアルでは、argparse
の使用について説明し、条件文と Python での引数の名前を使用して argparse
に引数が存在するかどうかを確認します。
Python での argparse
の引数の確認
Python の argparse
ライブラリは、コマンド ラインでユーザー フレンドリーなインターフェイスを記述するために使用されます。 たとえば、スクリプト名を使用してスクリプトを実行し、スクリプトの実行に必要な引数を提供できます。
スクリプト ファイルの名前の後に引数を追加できます。argparse
ライブラリは、これらの引数をスクリプト内で使用して必要なタスクを実行できるオブジェクトに変換します。 ユーザーを支援するために、各引数にヘルプ、使用法、およびエラー メッセージを添付することもできます。
たとえば、ユーザーが無効な引数を入力すると、argparse
ライブラリはエラーを表示し、ユーザーが引数を入力する方法を示します。 たとえば、argparse
ライブラリの簡単な例について説明しましょう。
以下のコードを参照してください。
import argparse
My_parser = argparse.ArgumentParser()
My_parser.parse_args()
出力:
PS C:\Users\ammar> python test.py -h
usage: test.py [-h]
optional arguments:
-h, --help show this help message and exit
上記のスクリプトを実行するには、cmd
(コマンド プロンプト) で python test.py -h
を記述し、Windows のシステム パス
または環境変数に Python が追加されていることを確認する必要があります。 追加されていない場合は、python.exe
ファイルへのフル パスを使用できます。
また、コマンド プロンプトの現在のディレクトリが Python ファイルのディレクトリに設定されていることも確認する必要があります。 そうでない場合は、Python ファイルへのフル パスを指定する必要があります。
たとえば、Python をシステム path
に追加する必要があり、Python ファイルの現在のディレクトリにもいないとします。 上記の出力の最初の行を下の行に変更する必要があります。
& C:/Users/ammar/python.exe "c:/Users/ammar/test.py" -h
上記の行は Windows PowerShell でテストされており、cmd
の場合、行頭の &
を削除する必要があります。 上記の出力では、1つの引数のみがヘルプに使用されていることがわかります。
add_argument()
関数を使用して、引数パーサーに引数を追加できます。 2 種類の引数を設定できます。1つは位置引数で、もう 1つはオプションの引数です。
引数を省略可能にするには、引数の前にシングル -
またはダブル ハイフン --
を使用する必要があります。 help
引数を使用して引数のヘルプを追加し、その値を add_argument()
関数内の文字列に設定することもできます。
ArgumentParser()
関数内の説明とエピローグ引数を使用して、ヘルプ セクションの前後にテキストを追加できます。 parse_args()
は、コマンド プロンプトで渡された引数をオブジェクトに変換して返します。これは、後で操作を実行するために使用できます。
たとえば、ユーザーから文字列引数を取得して表示してみましょう。 以下のコードを参照してください。
import argparse
import string
My_parser = argparse.ArgumentParser(
description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()
print(My_args.firstArg)
出力:
PS C:\Users\ammar> python test.py
usage: test.py [-h] firstArg
test.py: error: the following arguments are required: firstArg
PS C:\Users\ammar> python test.py -h
usage: test.py [-h] firstArg
text before help.....
positional arguments:
firstArg You can use string here
optional arguments:
-h, --help show this help message and exit
text after help.....
PS C:\Users\ammar> python test.py hello
hello
上記の Python ファイルを 3 回実行し、結果を出力で確認できます。 初めて、引数を指定せずにファイルを実行したところ、引数が必要であるというエラー メッセージが表示され、引数が渡されませんでした。
2 回目は、ヘルプに使用される -h
引数を指定してスクリプトを実行し、コードはスクリプトの使用法とヘルプを表示します。 コマンド プロンプトに表示される文字列を使用して、スクリプトを 3 回実行しました。
add_argument()
関数の type
引数を使用して、文字列の str や整数データ型の int のように、引数のデータ型を設定できます。 渡されたすべての引数は My_args
変数に格納され、この変数を使用して特定の引数が渡されたかどうかを確認できます。
argparse
オプションの引数が設定されているかどうかを確認する
オプションの引数の場合、引数が渡されない場合、parse_args()
メソッドはその特定の引数に対して None
を返します。 条件ステートメントを使用して、引数が None
かどうかを確認できます。引数が None
の場合は、引数が渡されないことを意味します。
たとえば、オプションの引数を追加して、引数が渡されたかどうかを確認し、それに応じて結果を表示してみましょう。 以下のコードを参照してください。
import argparse
import string
My_parser = argparse.ArgumentParser(
description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("-firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()
if My_args.firstArg is not None:
print("Argument passed")
else:
print("No Argument passed")
出力:
PS C:\Users\ammar> python test.py
No Argument passed
PS C:\Users\ammar> python test.py -firstArg hello
Argument passed
上記のスクリプトを引数ありと引数なしで 2 回実行し、それに応じてテキストを表示しました。 is not None
および is None
ステートメントを条件付きステートメントと共に使用して、引数が渡されるかどうかを判断できます。
オプションの引数の場合、引数を渡す前にそれらの名前も使用する必要があることに注意してください。 デフォルト値の場合、引数が None
になることは決してないため、チェックする引数にデフォルト値が設定されていないことを確認してください。
たとえば、add_argument()
関数内で default
キーワードを使用して上記のコードにデフォルト値を追加し、上記の手順を繰り返してみましょう。 以下のコードを参照してください。
import argparse
import string
My_parser = argparse.ArgumentParser(
description="text before help.....", epilog="text after help....."
)
My_parser.add_argument(
"-firstArg", help="You can use string here", type=str, default="default_value"
)
My_args = My_parser.parse_args()
if My_args.firstArg is not None:
print("Argument passed")
else:
print("No Argument passed")
出力:
PS C:\Users\ammar> python test.py
Argument passed
PS C:\Users\ammar> python test.py -firstArg hello
Argument passed
上記の出力で、引数を渡さない場合でも、デフォルト値のために渡された引数がコードに表示されることがわかります。 add_argument()
関数を何度も使用して、複数の引数を追加できます。
ユーザーによる入力の選択を制限したい場合は、choices
引数を add_argument()
内で使用し、その値を値のリストに設定します。この値は、スクリプトへの引数としてのみ渡すことができます。 .