35

最初にプログラムを実行してから、コマンドラインでユーザーの入力を待つことは可能ですか? 例えば

Run...

Process...

Input from the user(in command line form)...

Process...
4

4 に答える 4

87

OPが何を意味するのかはまったく明確ではありませんが(コメントで何度か行ったり来たりした後でも)、質問の可能な解釈に対する2つの答えを次に示します。

インタラクティブなユーザー入力 (またはパイプ コマンドまたはリダイレクトされた入力) 用

raw_inputPython 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に呼び出したいとします。barbaz

$ 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:]

于 2013-04-23T21:58:10.913 に答える
12

Python 3 を使用している場合はraw_inputinput

Python 3 の例:

line = input('Enter a sentence:')
于 2013-04-23T23:04:18.550 に答える