
こんにちは!Pythonスクリプトを実行する際、外部から情報を渡したいことってありますよね。例えば、処理対象のファイル名を指定したり、プログラムの動作モードを切り替えたりしたい場合に役立つのが「コマンドライン引数」です。
今回は、Pythonの標準ライブラリsysモジュールを使って、このコマンドライン引数を簡単に受け取る方法をご紹介します。
Pythonスクリプトの作成
まず、example.pyという名前で以下のPythonスクリプトを作成してください。
import sys
# sys.argv は、コマンドライン引数を含むリストです。
# sys.argv[0] にはスクリプト自身のファイル名が入ります。
# それ以降 (sys.argv[1] から) が、渡された引数になります。
print("--- sys.argv の内容 ---")
print(sys.argv)
# 受け取った引数の数を表示(スクリプト名を除く)
argument_count = len(sys.argv) - 1
print(f"\n受け取った引数の数: {argument_count}")
# 各引数を順番に表示
if argument_count > 0:
print("\n--- 渡された引数 ---")
for i, arg in enumerate(sys.argv):
if i == 0:
print(f"スクリプト名 (sys.argv[0]): {arg}")
else:
print(f"{i}番目の引数 (sys.argv[{i}]): {arg}")
else:
print("\n引数は渡されませんでした。")実行コマンド例
このスクリプトを保存したら、ターミナルやコマンドプロンプトから以下のコマンドで実行してみてください。
1. 引数なしで実行する場合
python example.py--- sys.argv の内容 ---
['example.py']
受け取った引数の数: 0
引数は渡されませんでした。2. いくつかの引数を渡して実行する場合
python example.py hello world Python 123--- sys.argv の内容 ---
['example.py', 'hello', 'world', 'Python', '123']
受け取った引数の数: 4
--- 渡された引数 ---
スクリプト名 (sys.argv[0]): example.py
1番目の引数 (sys.argv[1]): hello
2番目の引数 (sys.argv[2]): world
3番目の引数 (sys.argv[3]): Python
4番目の引数 (sys.argv[4]): 1233. スペースを含む引数を渡す場合(引用符で囲みます)
python example.py "Hello Python" "Good day"--- sys.argv の内容 ---
['example.py', 'Hello Python', 'Good day']
受け取った引数の数: 2
--- 渡された引数 ---
スクリプト名 (sys.argv[0]): example.py
1番目の引数 (sys.argv[1]): Hello Python
2番目の引数 (sys.argv[2]): Good dayこのように、sys.argvを使うと、コマンドラインからスクリプトに簡単に情報を渡すことができます。sys.argvは文字列のリストとして引数を受け取るので、数値として使いたい場合はint()やfloat()で型変換してくださいね。
みーちゃんのワンポイント
sys.argvで受け取った引数はすべて「文字列」として扱われます。もし引数として数値を渡して計算などで使いたい場合は、int()やfloat()を使って適切な型変換をすることを忘れないでくださいね。
