コマンドライン(Mac:ターミナル、Windows:コマンドプロンプト)からPythonのシステムに値を渡す方法を紹介します。
コマンドラインやJupyter Notebookから値を入力
基本
input(表示するメッセージ)
choice = input("Please respond with 'yes' or 'no' [y/n]: ") print(choice) # y
入力された値は文字列になりますので、数値の場合は変換する必要があります。
応用
YES or NO
- YES or NOとする場合、
.lower()
で小文字に変換して選択肢を減らします。 - ‘n’, ‘no’とすることで、できるだけ入力ミスを減らします。
choice = input("Please respond with 'yes' or 'no' [y/n]: ").lower() if choice in ['n', 'no']: print("The end") else: print("Start!") # nと入力した場合 # The end # yと入力した場合 # Start!
数値での選択肢
.isdecimal()
で入力した値が数値のみか判定します。空欄もエラーになります。len(choice)
で文字数を取得し、2文字以上であればエラーにします。
choice = input("Please respond with number [0-9]: ") if choice.isdecimal() == False: print("Error!") elif len(choice) > 1: print("Error!") else: print("Start!") val = int(choice) # 1または1と入力した場合 # Start! # y、空欄、12と入力した場合 # Error!
コマンドラインで引数を使って値を渡す
コマンドラインから、引数を与えてtest.pyを実行します。
以下の例では、引数は1となります。
python test.py 1
test.pyのプログラムと実行結果は以下のとおりです。
import sys print(sys.argv) # ['test.py', '1'] print(sys.argv[1]) # '1'
- sys.argvに配列として受け渡されます。
- 0番目は実行させたシステム名です。
- 引数はスペースを空けて複数個の引数を指定することができ、配列には1番目以降に順に挿入されます。
入力された値は文字列になりますので、数値の場合は変換する必要があります。
コメント