🍣
【Python】引数によって処理を変えるコードを紹介
概要
Pythonで指定した引数によって処理を変えるコードを紹介
サンプルコード
import sys
def process_args(args):
"""
引数に応じて処理を変える。
:param args: コマンドライン引数のリスト
"""
if len(args) == 0:
print("引数が指定されていません。")
elif args[0] == "start":
print("処理を開始します。")
elif args[0] == "stop":
print("処理を停止します。")
elif args[0] == "status":
print("現在のステータスを表示します。")
else:
print(f"不明な引数: {args[0]}")
if __name__ == "__main__":
# コマンドライン引数を取得(スクリプト名を除く)
process_args(sys.argv[1:])
実行例
$ python arg_test.py
引数が指定されていません。
$ python arg_test.py start
処理を開始します。
$ python arg_test.py stop
処理を停止します。
$ python arg_test.py status
現在のステータスを表示します。
$
利用例
引数1では sample.log 作成
引数2では xxxxのサービスを停止
引数3では xxxxのサービスを開始など
📌 補足
🐚 Shellスクリプトでも同様のことが可能です。
実は別の記事で、Shellで引数によって処理を分岐する方法も紹介しています👇
👉 Shellスクリプト版はこちら
📕 追記(引数が複数あるときのパターン)
## Python
## 引数関連
## 取得した引数に応じて処理を変える
import sys
def process_args(args):
"""
引数に応じて処理を変える。
:param args: コマンドライン引数のリスト
"""
if len(args) == 0:
print("引数が指定されていません。")
elif args[0] == "start":
print("処理を開始します。")
elif args[0] == "stop":
print("処理を停止します。")
elif args[0] == "status":
print("現在のステータスを表示します。")
elif len(args) == 2:
if args[0] == "add" and args[1].isdigit():
print(f"数値 {args[1]} を追加します。")
elif args[0] == "delete" and args[1].isdigit():
print(f"数値 {args[1]} を削除します。")
else:
print(f"不明な引数の組み合わせ: {args[0]} {args[1]}")
else:
print(f"不明な引数: {args[0]}")
if __name__ == "__main__":
# コマンドライン引数を取得(スクリプト名を除く)
process_args(sys.argv[1:])
実行例
$ python arg_test.py add 10
数値 10 を追加します。
$ python arg_test.py delete 50
数値 50 を削除します。
$
$ python arg_test.py delete cat
不明な引数の組み合わせ: delete cat
$
📌 補足 isdigit()
・isdigit() は、文字列が数字のみで構成されているかを判定するメソッド
以下のように動作
戻り値: 文字列が数字のみで構成されている場合は True、それ以外の場合は False
print("123".isdigit()) # True: 数字のみ
print("abc".isdigit()) # False: 英字が含まれる
print("123abc".isdigit()) # False: 数字と英字が混在
print("".isdigit()) # False: 空文字列
Discussion