以下代码适用于Python 3.它会立即将用户输入输出到控制台
import sys
for line in sys.stdin:
print (line)
不幸的是,它似乎不适用于Python 2.7和2.6(是的,我确实更改了打印命令) - 它不会输出我的行
我犯了一些愚蠢的错误,还是有另一种方法可以让它适用于较低版本的Python?
答案 0 :(得分:3)
您可以使用iter
和sys.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)
有点搞砸了,是吗? :)