[英]How to skip the extra newline while printing lines read from a file?
我正在從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
它會在每行后打印一個額外的換行符。 如何修復此程序或解決此問題的最佳方法是什么?
編輯:這是樣本運行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()
改變了這樣的程序,它按預期工作。 :)
python print
語句添加換行符,但原始行已經有一個換行符。 您可以通過在末尾添加逗號來抑制它:
print line , #<--- trailing comma
對於python3,(其中print
成為函數),這看起來像:
print(line,end='') #rather than the default `print(line,end='\n')`.
或者,您可以在打印之前從換行符的末尾剝離換行符:
print line.rstrip('\n') # There are other options, e.g. line[:-1], ...
但我不認為這幾乎是那么漂亮。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.