如何在python控制台中一次输入多个命令

时间:2016-08-21 07:45:02

标签: python console arguments automated-tests

我正试图在python控制台中同时输入几个命令以进行测试。
例如:

userInput = None
while userInput != 'end':
    userInput = input('$ ')
    userInput = userInput.strip()
    if userInput == 'one':
        print('all')
    elif userInput == 'two':
        print('at')
    elif userInput == 'three':
        print('once')

是否可以输入“一个”然后再不再触摸键盘“两个”然后“三个”。
一些东西:
一个\ rtwo \ rthree \ r \ n

提前感谢您的帮助!!!

3 个答案:

答案 0 :(得分:2)

偶尔我喜欢黑客input所以我可以通过在IDLE中点击F5进行测试。在您的情况下,您可以在代码之前添加它:

def input(prompt, inputs=iter('one two three end'.split())):
    x = next(inputs)
    print(prompt + x)
    return x

然后您不需要输入任何输入。输出是:

$ one
all
$ two
at
$ three
once
$ end

答案 1 :(得分:1)

只需创建一个名为input.txt的文本文件:

one
two
three
end

并按照以下方式调用您的脚本:

python myscript.py < file.txt

答案 2 :(得分:1)

我推荐来自@ Jean-Francois Fabre和@Abhirath Mahipal的输入。

但如果您的输入有限,这只是另一种选择。

tk.Entry

这是执行:

userInput = raw_input('$ ')
userInput = userInput.strip()
for each in userInput.split('\\r'):
    if each == 'one':
        print('all')
    elif each == 'two':
        print('at')
    elif each == 'three':
        print('once')
    elif each == 'exit':
        break

注意:python 3用户应将python test.py $ one\rtwo\rthree\rexit all at once 替换为raw_input