Pythonスクリプトのコマンドライン実行とオプションの詳解

この記事では、Pythonスクリプトをコマンドラインから実行する方法と、それに関連するオプションについて解説します。具体的なコード例とその詳細解説、応用例を3つ含めています。Pythonのコマンドライン実行は、スクリプトを手軽に動かすためや、実行時にオプションを付けてカスタマイズする際に非常に便利です。

目次

Pythonスクリプトの基本的なコマンドライン実行

Pythonスクリプトをコマンドラインから実行する基本的な方法は、`python`コマンドに続けてスクリプト名を指定する形です。

# コマンドラインからPythonスクリプトを実行する例
python your_script.py

この形式でスクリプトを実行すると、スクリプト内で定義された処理がそのまま実行されます。

コマンドライン引数の基本

Pythonでは、`sys.argv`を使用してコマンドライン引数を受け取ることができます。

import sys

# コマンドライン引数を表示する例
print(sys.argv)

上記のスクリプトを`python your_script.py arg1 arg2`と実行すると、`[‘your_script.py’, ‘arg1’, ‘arg2’]`というリストが出力されます。

オプション付きのコマンドライン実行

argparseモジュールの基本

`argparse`モジュールを使うことで、より高度なコマンドライン引数の処理が可能です。

import argparse

# argparseを使ってコマンドライン引数を処理する例
parser = argparse.ArgumentParser(description='このスクリプトの説明')
parser.add_argument('--name', help='名前を指定')
args = parser.parse_args()

print(f"Hello, {args.name}!")

このスクリプトを`python your_script.py –name John`と実行すると、`Hello, John!`と出力されます。

応用例

環境変数と組み合わせる

Pythonスクリプト内で環境変数を読み込んで、コマンドライン引数で上書きする例です。

import os
import argparse

default_name = os.getenv('USER_NAME', 'Guest')

parser = argparse.ArgumentParser()
parser.add_argument('--name', default=default_name)
args = parser.parse_args()

print(f"Hello, {args.name}!")

サブコマンドを定義する

`argparse`を使って、gitのようなサブコマンドを持つCLIツールを作成する例です。

import argparse

parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()

def greet(args):
    print(f"Hello, {args.name}!")

parser_greet = subparsers.add_parser('greet')
parser_greet.add_argument('--name', default='world')
parser_greet.set_defaults(func=greet)

args = parser.parse_args()
args.func(args)

複数のオプションを受け取る

`nargs`を使用して、複数のオプションを一度に受け取る例です。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--values', nargs='+')

args = parser.parse_args()
print(args.values)

まとめ

Pythonでコマンドライン引数を処理する方法にはいくつかの方法がありますが、基本的な`sys.argv`から高度な`argparse`まで、ニーズに応じて選べます。特に`argparse`は多機能で、プロのようなコマンドラインツールを作成する際には非常に有用です。

コメント

コメントする

目次