最初にプログラムを実行してから、コマンドラインでユーザーの入力を待つことは可能ですか? 例えば
Run...
Process...
Input from the user(in command line form)...
Process...
最初にプログラムを実行してから、コマンドラインでユーザーの入力を待つことは可能ですか? 例えば
Run...
Process...
Input from the user(in command line form)...
Process...
OPが何を意味するのかはまったく明確ではありませんが(コメントで何度か行ったり来たりした後でも)、質問の可能な解釈に対する2つの答えを次に示します。
raw_input
Python 2.x および Python 3 で使用しinput
ます (これらは組み込まれているため、使用するために何かをインポートする必要はありません。Python のバージョンに適したものを使用するだけです。)
例えば:
user_input = raw_input("Some input please: ")
詳細については、こちらをご覧ください。
たとえば、次のようなスクリプトがあるとします。
# First, do some work, to show -- as requested -- that
# the user input doesn't need to come first.
from __future__ import print_function
var1 = 'tok'
var2 = 'tik'+var1
print(var1, var2)
# Now ask for input
user_input = raw_input("Some input please: ") # or `input("Some...` in python 3
# Now do something with the above
print(user_input)
これを に保存した場合はfoo.py
、コマンド ラインからスクリプトを呼び出すだけで、 が出力されtok tiktok
、入力を求められます。入力することができbar baz
(その後にEnterキーを押します)、印刷されますbar baz
. これは次のようになります。
$ python foo.py
tok tiktok
Some input please: bar baz
bar baz
ここで、$
はコマンド ライン プロンプトを表し (実際には入力しません)、入力を求められたときにEnter
入力後にヒットします。bar baz
名前付きのスクリプトがあり、引数を付けてコマンドラインから次のようfoo.py
に呼び出したいとします。bar
baz
$ foo.py bar baz
(繰り返し$
ますが、コマンド ライン プロンプトを表します。) 次に、スクリプトで次のように実行できます。
import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]
ここで、変数arg1
には string が含まれ、'bar'
がarg2
含まれます'baz'
。オブジェクトsys.argv
は、コマンド ラインからのすべてを含む単なるリストです。sys.argv[0]
スクリプトの名前であることに注意してください。たとえば、すべての引数の 1 つのリストが必要な場合は、 を使用しますsys.argv[1:]
。
Python 3 を使用している場合はraw_input
、input
Python 3 の例:
line = input('Enter a sentence:')