Python argparseで使えるコマンドラインオプション完全ガイド

Pythonのロゴ Python

はじめに

argparseは、Pythonのコマンドライン引数を処理するための便利なツールで、多くのオプションを提供しています。本記事では、argparseでよく使われるコマンドラインオプションの一覧と、それぞれの具体的な使い方について解説します。これらのオプションを使いこなすことで、コマンドライン引数の管理がさらに効率的になります。argparseの基本的な使い方に関してはこちらの記事で詳しく解説しています。argparseを初めて使おうと思っている方やまだ慣れない方はこちらを参考にしてみてください。

よく使うコマンドラインオプション一覧

argparseでは、多くのオプションを使ってコマンドライン引数を柔軟に設定できます。以下に、よく使われるコマンドラインオプションの詳細を解説します。

name – コマンドライン引数名

nameオプションは、コマンドライン引数に名前を付けるために使用します。引数の名前は、プログラムに渡すコマンドライン引数を識別するために必要です。例えば、–nameという引数を定義すると、コマンドラインから–nameを指定することで、その値をプログラムに渡すことができます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with name.')
parser.add_argument('--name', type=str, help='Name of the user')
args = parser.parse_args()
print(f'Hello, {args.name}!')

このコードでは、–name引数を定義し、その引数に文字列型の値を受け取ります。ユーザーがコマンドラインで–nameを指定すると、その値が表示されます。

  • コマンドライン実行
python script.py --name Alice
  • 実行結果
Hello, Alice!

この例では、–name引数を用いてユーザーの名前を受け取り、挨拶メッセージにその名前を反映させています。

type – コマンドライン引数の型

typeオプションは、引数の型を指定するために使用します。これにより、引数が適切な型に変換され、プログラム内で正しく処理されます。例えば、–age引数に整数型を指定することで、年齢の入力を数値として受け取ることができます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with type.')
parser.add_argument('--age', type=int, help='Age of the user')
args = parser.parse_args()
print(f'You are {args.age} years old.')
  • コマンドライン実行
python script.py --age 30
  • 実行結果
You are 30 years old.

この例では、–age引数を整数型として受け取り、ユーザーの年齢を表示しています。

default – コマンドライン引数のデフォルト値

defaultオプションは、引数が指定されなかった場合に使用されるデフォルト値を設定するために使用します。これにより、ユーザーが引数を指定しなくてもプログラムが正常に動作します。例えば、–output引数にデフォルト値result.txtを設定することで、出力ファイル名が指定されない場合にこの名前が使われます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with default value.')
parser.add_argument('--output', type=str, default='result.txt', help='Output file name')
args = parser.parse_args()
print(f'Output will be saved to: {args.output}')
  • コマンドライン実行(引数を指定しない場合)
python script.py
  • 実行結果
Output will be saved to: result.txt
  • コマンドライン実行(引数を指定する場合)
python script.py --output report.txt
  • 実行結果
Output will be saved to: report.txt

この例では、–output引数が指定されない場合にデフォルトでresult.txtが使用されます。

nargs – 受け取れるコマンドライン引数の数

nargsオプションは、引数として受け取る値の数を指定するために使用します。これにより、複数の値を受け取ることができ、リストとして処理することができます。例えば、–input引数に複数のファイル名を指定する場合に使用します。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with nargs.')
parser.add_argument('--input', nargs='+', help='Input files')
args = parser.parse_args()
print(f'Input files: {args.input}')
  • コマンドライン実行
python script.py --input file1.txt file2.txt file3.txt
  • 実行結果
Input files: ['file1.txt', 'file2.txt', 'file3.txt']

この例では、–input引数に複数のファイル名を指定し、それらをリストとして受け取っています。

const – 定数

constオプションは、actionとnargsの組み合わせで使用される定数値を設定するために使用します。これにより、特定の引数が指定されたときに定数の値が設定されます。例えば、–flag引数が指定されたときに、定数’ON’を設定する場合に使用します。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with const.')
parser.add_argument('--flag', action='store_const', const='ON', help='Turn on the flag')
args = parser.parse_args()
print(f'Flag status: {args.flag}')
  • コマンドライン実行
python script.py --flag
  • 実行結果
Flag status: ON

この例では、–flag引数が指定されると、flag属性に定数’ON’が設定されます。

action – 引数が呼ばれた時のアクション

actionオプションは、引数がコマンドラインで指定されたときに実行されるアクションを指定するために使用します。例えば、–verbose引数を指定することで、詳細モードを有効にすることができます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with action.')
parser.add_argument('--verbose', action='store_true', help='Enable verbose mode')
args = parser.parse_args()
if args.verbose:
    print('Verbose mode is enabled.')
  • コマンドライン実行
python script.py --verbose
  • 実行結果
Verbose mode is enabled.

この例では、–verbose引数が指定された場合に「Verbose mode is enabled.」というメッセージが表示されます。

choices – 引数の選択肢

choicesオプションは、引数が取ることのできる値の選択肢を設定するために使用します。これにより、指定された選択肢の中から引数の値を選ぶことができます。例えば、–level引数にlow、medium、highの選択肢を設定することで、ユーザーが選択肢から一つを選べるようになります。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with choices.')
parser.add_argument('--level', choices=['low', 'medium', 'high'], help='Set the level of detail')
args = parser.parse_args()
print(f'Selected level: {args.level}')
  • コマンドライン実行
python script.py --level medium
  • 実行結果
Selected level: medium

この例では、–level引数にmediumが選ばれ、その値が出力されます。

required – オプション引数を必須にする

requiredオプションは、引数が必須であるかどうかを設定するために使用します。これにより、必須の引数が指定されないとプログラムがエラーを返します。例えば、–input引数を必須に設定することで、スクリプトを実行する際に必ず入力ファイルを指定しなければなりません。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with required argument.')
parser.add_argument('--input', required=True, help='Input file name')
args = parser.parse_args()
print(f'Input file: {args.input}')
  • コマンドライン実行
python script.py --input data.txt
  • 実行結果
Input file: data.txt
  • 引数を指定しない場合
python script.py
  • 実行結果
usage: script.py [-h] --input INPUT
script.py: error: the following arguments are required: --input

この例では、–input引数が必須であり、指定しないとエラーが発生します。

help – 引数の説明

helpオプションは、引数の目的や使い方についての説明を提供するために使用します。これにより、ユーザーがコマンドライン引数の使い方を理解しやすくなります。例えば、–output引数に対して「Output file name」と説明を加えることで、その引数が何を意味するのかが明確になります。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with help.')
parser.add_argument('--output', type=str, help='Output file name')
args = parser.parse_args()
print(f'Output file: {args.output}')
  • コマンドライン実行
python script.py --help
  • 実行結果
usage: script.py [-h] [--output OUTPUT]

Example with help.

optional arguments:
  -h, --help            show this help message and exit
  --output OUTPUT       Output file name

この例では、–help引数を使って、–output引数の説明が表示されます。

metavar – ヘルプメッセージの中で使われる引数の名前

metavarオプションは、ヘルプメッセージ内で引数の名前をカスタマイズするために使用します。これにより、ユーザーが引数に何を入力する必要があるのかがより分かりやすくなります。例えば、–output引数にFILEという名前を設定することで、ヘルプメッセージでその引数がファイル名であることが明示されます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with metavar.')
parser.add_argument('--output', metavar='FILE', type=str, help='Output file name')
args = parser.parse_args()
print(f'Output file: {args.output}')
  • コマンドライン実行
python script.py --help
  • 実行結果
usage: script.py [-h] [--output FILE]

Example with metavar.

optional arguments:
  -h, --help            show this help message and exit
  --output FILE         Output file name

この例では、–output引数のヘルプメッセージにFILEという名前が使われています。

dest – 属性名

destオプションは、引数の値が格納される属性名を設定するために使用します。これにより、引数の値を取得する際の属性名をカスタマイズできます。例えば、–log引数にlogfileという属性名を設定することで、引数の値をlogfileという名前で取得できます。

  • コード例
import argparse

parser = argparse.ArgumentParser(description='Example with dest.')
parser.add_argument('--log', dest='logfile', help='Log file name')
args = parser.parse_args()
print(f'Log file: {args.logfile}')
  • コマンドライン実行
python script.py --log error.log
  • 実行結果
Log file: error.log

この例では、–log引数に指定された値がlogfileという属性名で取得され、その値が表示されます。

最後に

この記事で紹介したコマンドラインオプションを理解し、使いこなすことで、Pythonでの引数処理がより柔軟に行えるようになります。各オプションの使い方をマスターし、実際のプロジェクトに適用することで、より洗練されたコマンドラインツールを作成することができるでしょう。ぜひ、この記事を参考にして、自分のスクリプトやプログラムに役立ててください。

私の経歴などについては以下の記事から確認することができます!

ブログランキングに参加しています。ぜひクリックで応援お願いします

ブログランキング・にほんブログ村へ
「#Python」人気ブログランキング

コメント

タイトルとURLをコピーしました