如何编写一个响应命令行输入的程序?

时间:2013-10-15 08:14:08

标签: python command-line

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

c:\>python my_responder.py

然后会给我一个提示:

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

然后我会输入内容,然后点击输入:

responder> How many days are there in one week?

然后响应者将回复函数的结果(其输入是键入的字符串)。 e.g。

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中的函数。

其他信息:我对stdin / stdout一无所知,他们觉得相关。我也不了解如何让Python与命令行进行交互(除了运行一个可以打印到窗口的python程序)。

1 个答案:

答案 0 :(得分: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!

它会打印到stdout:

Hello, World!