Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで引数をオプションにする方法(argparseの使い方を解説)

はじめに

Pythonのプログラムでは、コマンドライン引数が指定された場合はその値を使い、指定されなかった場合にはデフォルト値にフォールバックする、いわゆる「オプション引数」が必要になることがあります。本記事では、標準ライブラリの argparse を使ってオプション引数を実装する方法を解説します。

ダッシュ(--)で始まるパラメータはオプション引数として扱われます。これらは省略可能であり、デフォルト値を持たせることができます。

一方、ダッシュで始まらないパラメータは位置引数(positional argument)と呼ばれ、通常は必須となるため、デフォルト値は設定しません。

実装方法

サンプルコード

import argparse
parser = argparse.ArgumentParser(description='Optional Argument Example')
parser.add_argument('-n', '--name', metavar='name',
default='World', help='Say Hello to <>')
args = parser.parse_args()
print(f"Hello {args.name}")

このコードのポイントを解説します。

  • -n / --name:それぞれ「短いオプション名」と「長いオプション名」を表します。どちらを使っても同じ引数を指定できます。
  • metavar:ヘルプや使用方法(usage)の表示において、引数の説明用プレースホルダーとして表示される名前です。
  • default:引数が指定されなかった場合に使用されるデフォルト値です。ここでは 'World' が設定されています。

動作確認

1. ヘルプメッセージの確認

まず、実行前にヘルプメッセージを確認してみましょう。-h オプションを付けて実行します。

>>>python test.py -h
usage: test.py [-h] [-n name]

Optional Argument Example

optional arguments:
-h, --help show this help message and exit
-n name, --name name Say Hello to <<name>>

オプションの一覧とその説明が自動的に生成されていることが分かります。これは argparse の便利な機能の一つです。

2. 引数なしで実行する

次に、何もパラメータを渡さずにプログラムを実行してみます。

>>>python test.py
Hello World

引数が指定されていないため、default で設定した「World」が出力されました。

3. 引数を指定して実行する

今度は「Universe」という名前を渡して挨拶させてみましょう。オプション引数を使用する場合は、--name または -n のいずれかで値を指定することを忘れないでください。

>>>python test.py --name Universe
Hello Universe

>>> python test.py -n Universe
Hello Universe

長いオプション名・短いオプション名のどちらでも正しく動作することが確認できました。

まとめ:オプション引数と位置引数の違い

最後に、両者の違いを以下の表にまとめます。

種類必須かどうかデフォルト値
オプション引数-n(短い)、--name(長い)いいえあり
位置引数name や number などはいなし

argparse を活用すれば、柔軟で使いやすいコマンドラインツールを簡単に作成できます。特にヘルプメッセージが自動生成される点は、ツールの保守性やユーザビリティ向上に大きく貢献します。ぜひ実際のプロジェクトでも活用してみてください。

  1. Python・NumPyのangle()関数で複素数の偏角を求める方法

    Pythonで複素数の偏角(位相角)を求めるには、NumPyライブラリのnumpy.angle()メソッドを使用します。このメソッドは、複素平面上の正の実軸から反時計回りに測った角度を、範囲(-π, π]で返します。戻り値のデータ型はnumpy.float64です。numpy.angle()の主な引数第1引数 z:複素数、または複素数を要素とする配列(シーケンス)を指定します。第2引数 deg:Trueを指定すると角度が度(°)単位で返され、False(デフォルト)の場合はラジアン単位で返されます。実行手順まず、必要なライブラリをインポートします。import numpy as np次に、ar

  2. Pythonで対数ヒストグラムを作成する方法【matplotlib活用】

    Pythonのmatplotlibを使って対数(ログ)スケールのヒストグラムを作成するには、hist()メソッドの引数にlog=Trueを指定します。これにより、縦軸が対数スケールで表示され、値の範囲が大きく異なるデータも見やすく可視化できます。作成手順数値のリスト(配列)を用意します。density=Trueを指定して、正規化されたヒストグラムをプロットします。図を表示するには、show()メソッドを呼び出します。サンプルコードimport numpy as np import matplotlib.pyplot as plt plt.rcParams[figure.figsize] = [