问题1:
我有一段像这样的代码(Python2.7):
for line in sys.stdin.readlines():
print line
当我运行这段代码,输入一个字符串并按下回车键时,什么也没有发生。'print line'没有起作用。因此我想到sys.stdin.readlines()有缓冲,但我想知道它是如何工作的?我能刷新它以便每次给出一行时,'print line'可以立即执行吗?
问题2:这两行代码有什么区别:
for line in sys.stdin:
for line in sys.stdin.readline():
我发现他们的行为有点不同。如果我使用ctrl+D来终止输入,在第一种情况下,我必须按两次ctrl+D才能真正终止。而在第二种情况下,只需要按一次ctrl+D。
list(sys.stdin)
。如果你使用for line in sys.stdin
,我相信sys.stdin
被视为一个生成器。在官方文档中搜索文件对象。 - JoshuaRLi