はじめに
Pythonスクリプトを実行する際に、コマンドライン引数を受け取ることができます。これにより、スクリプトに動的な入力を提供し、柔軟な処理を実現することができます。Pythonでは、sys
モジュールのargv
を使用してコマンドライン引数を処理します。
sys.argv
の概要
sys.argv
は、Pythonのsys
モジュールに含まれるリストで、コマンドラインからスクリプトに渡された引数を格納します。このリストの最初の要素(sys.argv[0]
)はスクリプトの名前で、その後に続く各要素が実際のコマンドライン引数です。
基本的な使用方法
まず、sys
モジュールをインポートする必要があります。次に、sys.argv
を使って引数を取得し、処理します。
import sys
def main():
print("スクリプト名:", sys.argv[0])
print("引数のリスト:", sys.argv[1:])
if __name__ == "__main__":
main()
実行例
このスクリプトを args_example.py
として保存し、次のようにコマンドラインから実行します:
python args_example.py arg1 arg2 arg3
出力は次のようになります:
スクリプト名: args_example.py
引数のリスト: ['arg1', 'arg2', 'arg3']
引数の数をチェックする方法
スクリプトが期待する引数の数をチェックすることが重要です。例えば、2つの引数が必要なスクリプトの場合、以下のようにチェックします:
import sys
def main():
if len(sys.argv) != 3:
print("Usage: python script.py <arg1> <arg2>")
sys.exit(1)
arg1 = sys.argv[1]
arg2 = sys.argv[2]
print("引数1:", arg1)
print("引数2:", arg2)
if __name__ == "__main__":
main()
実行例
python script.py hello world
出力:
引数1: hello
引数2: world
コマンドライン引数を用いた実例
次に、引数を使用して簡単な加算を行うスクリプトを紹介します。
import sys
def main():
if len(sys.argv) != 3:
print("Usage: python sum.py <num1> <num2>")
sys.exit(1)
try:
num1 = float(sys.argv[1])
num2 = float(sys.argv[2])
except ValueError:
print("引数は数値である必要があります")
sys.exit(1)
result = num1 + num2
print(f"合計: {result}")
if __name__ == "__main__":
main()
実行例
python sum.py 3.5 7.2
出力:
合計: 10.7
エラー処理
コマンドライン引数が不足している場合や、正しい形式でない場合のエラー処理を行います。
import sys
def main():
if len(sys.argv) != 3:
print("Usage: python script.py <num1> <num2>")
sys.exit(1)
try:
num1 = float(sys.argv[1])
num2 = float(sys.argv[2])
except ValueError:
print("引数は数値である必要があります")
sys.exit(1)
result = num1 + num2
print(f"合計: {result}")
if __name__ == "__main__":
main()
まとめ
-
sys.argv
: コマンドライン引数をリストとして保持。 -
sys.argv[0]
: スクリプトの名前。 -
sys.argv[1]
以降: コマンドラインから渡された引数。 - エラー処理: 引数の数や型を確認し、適切にエラーメッセージを表示。
sys.argv
を使うことで、スクリプトに動的な入力を渡し、柔軟な処理を行うことができます。正しい引数の数や型をチェックすることで、スクリプトの信頼性を高めることができます。