Pythonスクリプトでコマンドライン引数のチェックし、動作条件とを満たす場合の未処理を行う方法を紹介します。
サンプルコード
以下は、2つのコマンドライン引数を必要とするスクリプトのサンプルです。
#coding: UTF-8
import sys
# 引数の数を表示(1)
num_args = len(sys.argv) - 1
print( "引数の総数: " + str(num_args) )
# 引数が2つ以外の場合は使用方法を表示
if num_args != 2:
print("Usage: sample.py arg1 arg2")
else:
# コマンドライン引数を取得(2)
arg1 = sys.argv[1]
arg2 = sys.argv[2]
# 引数を表示
print( "第1引数: " + arg1 )
print( "第2引数: " + arg2 )
(1)コマンドライン引数は配列 sys.argv に格納されています。sys.argv[0]には実行中のスクリプトの名前が入っていて、引数はsys.argv[1]以降となります。
sys.argv[0] 実行中のスクリプトの名前
sys.argv[1] 引数1
sys.argv[2] 引数2
引数の数を表現するために len(sys.argv) – 1 としていますが、これはsys.argv[0]に格納されている実行中のスクリプトの名前の分の要素数を除外するためです。
(2)コマンドライン引数を格納している配列 sys.argv の各要素にアクセスして引数を取り出します。
実行結果
D:\Sample\Python>python sample.py
引数の総数: 0
Usage: sample.py arg1 arg2
D:\Sample\Python>python sample.py aaa
引数の総数: 1
Usage: sample.py arg1 arg2
D:\Sample\Python>python sample.py aaa bbb
引数の総数: 2
第1引数: aaa
第2引数: bbb
D:\Sample\Python>python sample.py aaa bbb ccc
引数の総数: 3
Usage: sample.py arg1 arg2
まとめ
本記事では、Pythonスクリプトでコマンドライン引数のチェックし、動作条件とを満たす場合の未処理を行う方法を紹介しました。