立即将用户输入输出到控制台

时间:2015-10-25 11:41:25

标签: python python-2.7 python-3.x

以下代码适用于Python 3.它会立即将用户输入输出到控制台

import sys
for line in sys.stdin:
    print (line)

不幸的是,它似乎不适用于Python 2.7和2.6(是的,我确实更改了打印命令) - 它不会输出我的行

我犯了一些愚蠢的错误,还是有另一种方法可以让它适用于较低版本的Python?

3 个答案:

答案 0 :(得分:3)

您可以使用itersys.stdin.readline直接获取输出,类似于python3中的行为:

import sys
for line in iter(sys.stdin.readline,""):
    print(line)

""是一个哨兵值,当达到EOF时你会打破我们的循环,或者你在unix上输入CTRL-D或在窗口上输入CTRL-Z。

答案 1 :(得分:2)

您可以通过导入readline为类似Unix的系统上的用户提供更好的功能,从而为您提供行编辑功能,包括历史记录。但是你必须使用raw_input()(或Python {3 {1}}而不是input()

sys.stdin.readline()

Ctrl D 通过EOF干净地终止程序。

答案 2 :(得分:0)

好的,我找到了解决方案here

import sys

while 1:
    try:
        line = sys.stdin.readline()
    except KeyboardInterrupt: # Ctrl+C
        break
    if not line: # EOF
        break
    print line, # avoid adding newlines (comma: softspace hack)

有点搞砸了,是吗? :)