【Python】コマンドラインから関数を実行する

この記事では、Pythonのコマンドライン引数について学びます。

コマンドライン引数を受け取る方法や関数の実行例、バリデーションの方法、デフォルト値の設定などを解説します。

コマンドライン引数を使うことで、プログラムの動作を柔軟に制御することができます。

目次から探す

Pythonのコマンドライン引数とは?

Pythonのコマンドライン引数とは、プログラムを実行する際にコマンドラインから渡される引数のことです。

コマンドライン引数を使うことで、プログラムの動作を柔軟に制御することができます。

コマンドライン引数を受け取る方法

Pythonでは、主に2つの方法でコマンドライン引数を受け取ることができます。

一つはsysモジュールを使った方法、もう一つはargparseモジュールを使った方法です。

sysモジュールを使った方法

sysモジュールを使うと、コマンドライン引数はsys.argvというリストとして取得することができます。

sys.argvの最初の要素は実行されたPythonスクリプトのファイル名であり、その後に渡された引数が順番に格納されています。

以下は、sys.argvを使ってコマンドライン引数を取得する例です。

import sys

# コマンドライン引数の取得
args = sys.argv

# ファイル名を除いた引数の表示
print(args[1:])

argparseモジュールを使った方法

argparseモジュールを使うと、より柔軟にコマンドライン引数を受け取ることができます。

argparseモジュールを使用すると、引数の型や範囲のチェック、ヘルプメッセージの表示など、さまざまな機能を簡単に実装することができます。

以下は、argparseモジュールを使ってコマンドライン引数を取得する例です。

import argparse

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("name", help="名前を指定してください")
parser.add_argument("-a", "--age", type=int, help="年齢を指定してください")

# 引数の解析
args = parser.parse_args()

# 引数の表示
print("名前:", args.name)
print("年齢:", args.age)

コマンドライン引数を使った関数の実行例

コマンドライン引数を使って関数を実行することもできます。

以下では、単純な引数の受け渡し、オプション引数の受け渡し、複数の引数の受け渡しの例を紹介します。

単純な引数の受け渡し

import sys

def greet(name):
    print(f"こんにちは、{name}さん!")

# コマンドライン引数の取得
args = sys.argv

# 関数の実行
greet(args[1])

オプション引数の受け渡し

import argparse

def greet(name, age):
    print(f"こんにちは、{name}さん!{age}歳ですね。")

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("name", help="名前を指定してください")
parser.add_argument("-a", "--age", type=int, help="年齢を指定してください")

# 引数の解析
args = parser.parse_args()

# 関数の実行
greet(args.name, args.age)

複数の引数の受け渡し

import argparse

def add_numbers(numbers):
    total = sum(numbers)
    print(f"合計: {total}")

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("numbers", nargs="+", type=int, help="数字を指定してください")

# 引数の解析
args = parser.parse_args()

# 関数の実行
add_numbers(args.numbers)

コマンドライン引数のバリデーション

コマンドライン引数のバリデーションを行うことで、引数の型や範囲をチェックすることができます。

以下では、引数の型チェックと引数の範囲チェックの例を紹介します。

引数の型チェック

import argparse

def greet(name):
    print(f"こんにちは、{name}さん!")

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("name", type=str, help="名前を指定してください")

# 引数の解析
args = parser.parse_args()

# 関数の実行
greet(args.name)

引数の範囲チェック

import argparse

def calculate_square(number):
    if number < 0:
        print("正の数を指定してください")
    else:
        square = number ** 2
        print(f"{number}の2乗は{square}です")

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("number", type=int, help="数値を指定してください")

# 引数の解析
args = parser.parse_args()

# 関数の実行
calculate_square(args.number)

コマンドライン引数のデフォルト値の設定

コマンドライン引数にデフォルト値を設定することもできます。

デフォルト値を設定すると、引数が指定されなかった場合にその値が使用されます。

import argparse

def greet(name="ゲスト"):
    print(f"こんにちは、{name}さん!")

# 引数のパーサーを作成
parser = argparse.ArgumentParser()

# 引数の追加
parser.add_argument("-n", "--name", default="ゲスト", help="名前を指定してください")

# 引数の解析
args = parser.parse_args()

# 関数の実行
greet(args.name)

以上が、コマンドラインから関数を実行するです。

コマンドライン引数を使ってプログラムを柔軟に制御することができるので、ぜひ活用してみてください。

目次から探す