-2

我想编写一个响应命令行输入的程序。通常,我会从命令行启动程序:

c:\>python my_responder.py

然后它会给我一个提示:

responder> Hello. Please type your question.
responder> _

然后我会输入一些东西,然后按回车:

responder> How many days are there in one week?

然后响应者将回复一个函数的结果(其输入是键入的字符串)。例如

def respond_to_input(input):
    return 'You said: "{}". Please type something else.'.format(input)

responder> You said: "How many days are there in one week?". Please type something else.

我似乎无法将这种命令行输入/输出连接到 python 中的函数。

附加信息:我对标准输入/标准输出一无所知,他们觉得很相关。我也不了解如何让 Python 通常与命令行交互(除了运行一个可以打印到窗口的 Python 程序)。

4

1 回答 1

0

除了 raw_input() 还有 sys.argv 列表,(http://docs.python.org/2/tutorial/interpreter.html#argument-passing)非常有用:

from __future__ import print_function    # Only needed in python2.
from sys import argv as cli_args

def print_cli_args():
    print(*cli_args[1:])


print_cli_args()

您可以将它保存在一个文件中,比如说 echo.py 并在 shell 中像这样运行它:

$ python2 echo.py Hello, World!

它会打印到标准输出:

Hello, World!
于 2013-10-15T11:07:33.300 回答