【发布时间】:2013-06-10 15:40:17
【问题描述】:
我正在从标准输入读取我的 python 程序的输入(我已将一个文件对象分配给标准输入)。输入的行数事先不知道。有时程序可能只有 1 行、100 行甚至根本没有行。
import sys
sys.stdin = open ("Input.txt")
sys.stdout = open ("Output.txt", "w")
def main():
for line in sys.stdin:
print line
main()
这是最接近我的要求的。但这有一个问题。如果输入是
3
7 4
2 4 6
8 5 9 3
打印出来
3
7 4
2 4 6
8 5 9 3
它在每一行之后打印一个额外的换行符。如何修复此程序或解决此问题的最佳方法是什么?
编辑:这是运行示例http://ideone.com/8GD0W7
EDIT2:感谢您的回答。我知道错误了。
import sys
sys.stdin = open ("Input.txt")
sys.stdout = open ("Output.txt", "w")
def main():
for line in sys.stdin:
for data in line.split():
print data,
print ""
main()
像这样更改程序,它按预期工作。 :)
【问题讨论】:
-
反对者,请告诉我如何改进这篇文章。
-
我会说两个可能的不赞成票的原因: 1. 标题具有误导性,它根本与 EOF 的处理无关; 2.在EDIT2中,为什么还需要拆分?您应该打印
line,或line.strip(),但您的代码也会压缩空格。
标签: python