猿问

在打印从文件读取的行时如何跳过多余的换行符?

我正在从stdin读取我的python程序的输入(我已将文件对象分配给stdin)。输入行数事先未知。有时程序可能会得到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

它在每行之后打印一个额外的换行符。如何修复此程序,或者解决此问题的最佳方法是什么?


米琪卡哇伊
浏览 164回答 1
1回答

UYOU

pythonprint语句添加了换行符,但是原始行上已经有换行符。您可以通过在末尾添加逗号来抑制它:print&nbsp;line&nbsp;,&nbsp;#<---&nbsp;trailing&nbsp;comma对于python3(在其中print变为函数),它看起来像:print(line,end='')&nbsp;#rather&nbsp;than&nbsp;the&nbsp;default&nbsp;`print(line,end='\n')`.或者,您可以在打印之前将换行符从行的结尾处去除:print&nbsp;line.rstrip('\n')&nbsp;#&nbsp;There&nbsp;are&nbsp;other&nbsp;options,&nbsp;e.g.&nbsp;line[:-1],&nbsp;...但我认为那不是那么漂亮。
随时随地看视频慕课网APP

相关分类

Python
我要回答