Python ターミナル(コマンドプロンプト)やJupyter Notebookから値を受け渡す

スポンサーリンク

コマンドライン(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番目以降に順に挿入されます。
入力された値は文字列になりますので、数値の場合は変換する必要があります。

 

コメント

タイトルとURLをコピーしました