【Python入門】argparseでコマンドライン引数を指定して実行

コマンドライン引数を指定して実行
スポンサーリンク
スポンサーリンク

Pythonスクリプトをコマンドプロンプトから実行する際に、引数を指定して実行したい場合に、argparse モジュールを使用します。

argparse には、引数を定義することでコマンドのヘルプ表示を自動的に生成する機能もあります。

スポンサーリンク

使用モジュール

argparse は Python標準ライブラリに含まれていますので、インストールは不要です。

モジュール :argparse (公式ドキュメント
インストール:不要

モジュールのインポート

argparse モジュールをインポートします。

argparse でコマンドライン引数を受け取る

コマンドライン引数を受け取るには、argparse.ArgumentParser()parser インスタンスを作成して、parser.add_argument() で引数を追加します。

parser = argparse.ArgumentParser(description=’プログラムの説明’)
parser.add_argument(‘arg’, help=’引数の説明’)

 

description, help は省略可能です。


以下がコマンドライン引数を受け取るサンプルプログラムです。argtest.py として保存します。

スクリプト実行時に、スペースを入れて引数を2個入力します。
以下の例では、test, 1 を引数に指定しています。


以下のように引数を1つしか指定しないと、error: the following arguments are required というエラーが発生します。

上記の例では引数は必須入力となるため、このようなエラーが発生します。

引数を省略してもよい場合は、次に説明するオプション引数として指定します。

オプション引数を指定する

オプション引数を指定する場合は、add_argument() メソッドの名称に「-」または「–」を接頭語にした文字列を指定します。
名称が1文字の場合はシングルダッシュ「-」、複数文字列の場合はダブルダッシュ「–」にするのが慣例のようです。 (例 -s, –string)

オプション引数の名称と引数を入力して実行すると、以下のように出力されます。


オプション引数を省略すると、デフォルト値は None のため、以下のように出力されます。

オプション引数のデフォルト値を指定する

オプション引数のデフォルト値は None ですが、デフォルト値を指定することもできます。

add_argument() の引数に default= を追加して値を指定します。

実行結果は以下のようになります。

型を指定する

コマンドライン引数で指定された値は、デフォルトでは文字列型です。

数値を指定したい場合は、add_argument() の引数に type を追加して intfloat を指定します。

入力値が自動で、指定した型に変換されます。

オプション引数を必須指定にする

数値を指定したい場合は、add_argument() の引数に required=True を追加します。

必須項目の引数が複数ある場合、入力順序を間違えるとエラーになってしまいますが、オプション引数を必須項目指定することで、順序を気にせずコマンド入力することができます。

複数の引数を受け取る

add_argument() の引数に nargs を追加して引数の個数を指定します。

実行結果は以下になります


引数の個数が不定の場合は nargs='*' とすることで受け取ることができます。

実行結果

アクションを指定する

デフォルトのアクションは値を格納する store になっていますが、アクションを指定することで、動作を変更することが可能です。

変更するには add_argument() の引数 action で動作を指定します。

定数を格納する

action='store_const' を指定することで、const で設定した定数を格納します。

オプション引数名を指定することでアクションが実行されます。引数名を指定しないと None が格納されます。

フラグとして使用する

action='store_true', 'store_false' を指定することで、True, False フラグを格納することができます。デフォルト値はそれぞれ False, True になります。


オプション引数名を指定することで、動作させることができます。

定数値をリストに格納する

action='append_const' とすることで、指定した定数値を、引数で指定した回数分リストに追加します。

実行結果は以下になります。

ヘルプを表示する

実行結果は以下のようになります。

argparse を使わないで引数を取得する

Python標準のsys モジュールでも、コマンドライン引数を取得することができます。

 引数リスト = sys.argv

実行結果です。

コマンドライン引数を指定してPythonスクリプトを実行する方法を解説しました。

・関連記事:【Win11対応】Pythonスクリプトを自動実行する方法
・関連記事:Pythonスクレイピングでメルカリの商品情報を自動取得する(2022年版)