【发布时间】:2016-02-05 03:25:27
【问题描述】:
可能是一个简单的问题,但我基本上是在尝试复制 cat 命令的行为(非常稀疏和简单),但在 python 中。我希望用户能够输入他们想要的所有文本,然后当他们输入 EOF(通过按 ctrl+d 或 cmd+d)时,程序应该打印出他们输入的所有内容。
import sys
for line in sys.stdin:
print line
如果我输入输入行并在最后一行后面加上回车符,然后按cmd+d:
never gonna give you up
never gonna let you down
never gonna run around
and desert you
那么输出就是
never gonna give you up
never gonna let you down
never gonna run around
and desert you
但是,如果我还在最后一行“and desert you”上按cmd+d,则输出为:
never gonna give you up
never gonna let you down
never gonna run around
如何修改程序,如果用户在最后一行按下 EOF,那么它仍应包含在输出中?
【问题讨论】:
-
它的环境特定...你在哪个操作系统上?
-
您或许应该阅读一下No final newline。当然,它讨论的是 shell 脚本而不是 Python,但其中一些问题是相似的,并且来自同一来源;该代码显示最后一行,并且不显示最后一行之后的尾随数据。