[Python] sys.argvでコマンドラインの引数を取得

[Python] sys.argvでコマンドラインの引数を取得

概要

  • pythonファイル(xxx.py)を直接実行する際にコマンドラインに引数を入力することで引数によって違う処理ができます。
  • 今回は『sys.argv』を利用して処理の中でコマンドラインに入力した引数を取得する方法を紹介します。

参考

手順

sys.argv処理追加

  • まず、『Hello world』を出力する初期プログラムです。
helloworld.py
# メイン処理
if __name__ == '__main__':
    # hello worldを出力
    print("hello world")

実行コマンド :

python helloworld.py

実行結果 :

hello world

  • ここにsysをimportします。
  • 続けて『sys.argv』をargsに保存することで引数を確認できます。
helloworld.py
# sysを追加
import sys

# メイン処理
if __name__ == '__main__':
    # sys.argvをargsに保存
    args = sys.argv

    
    # hello worldを出力
    print("hello world")
    
    # 引数を出力
    print(args)

実行コマンド :

python helloworld.py “test1” 100

実行結果 :

hello world
[‘helloworld.py’, ‘test1’, ‘100’]

sys.argvの中身を確認

  • sys.argsには引数がリストで保存されています。
  • 引数は
    • sys.args[0]にはファイルパス
    • sys.args[1]から入力した引数を順番で保存されています。
helloworld.py
# sysを追加
import sys

# メイン処理
if __name__ == '__main__':
    # sys.argvをargsに保存
    args = sys.argv

    # 引数を一つずつ出力
    for index, arg in enumerate(args):
      print(f"arg[{index}] : {arg}")
helloworld.py
# メイン処理
if __name__ == '__main__':
    # hello worldを出力
    print("hello world")

実行コマンド :

python helloworld.py “test1” 100

実行結果 :

arg[0] : helloworld.py
arg[1] : test1
arg[2] : 100

まとめ

  • 今回は『sys.argv』を利用して処理の中でコマンドラインに入力した引数を取得する方法を紹介しました。
  • sys.argvに引数がリストとして保存されていること、
    sys.argv[0]にはファイルパスが保存されていること
    を注意してください。