当我从文件中读取时为什么要打印新行?

时间:2016-02-11 14:30:20

标签: python

当我运行此代码时,我看到了新行。
我通过添加rCourse.split()而非rCourse来解决此问题 但我仍然对为什么打印新线感到好奇?

test.py

f = open('/home/test.txt', 'r')
print "oldCourses are:"
for rCourse in  f:
   print rCourse

的test.txt

course1
course2
course3
adsfgsdg
sdgsfdg
sfbvfsbv
fbf

oldOutput

course1

course2

course3

adsfgsdg

sdgsfdg

sfbvfsbv

fbf

fsbf

2 个答案:

答案 0 :(得分:4)

因为你的行以' \ n'结尾。字符和print添加了另一个' \ n'。

有多种方法可以解决这个问题。我喜欢使用Python 3 print函数。

from __future__ import print_function

f = open('test.txt', 'r')
print("oldCourses are:")
for rCourse in  f:
   print(rCourse, end='')

答案 1 :(得分:2)

假设您有此文本文件:

$ cat test.txt
Line 1
Line 2
Line 3
Line 4

如果你打开它并逐行阅读和打印,你会得到两行\n;一个在文件的每一行中,一个默认放在那里print

>>> with open("test.txt") as f:
...    for line in f:
...       print line
... 
Line 1

Line 2

Line 3

Line 4

有很多方法可以解决这个问题。

您可以使用.rstrip()删除\n

>>> with open("test.txt") as f:
...    for line in f:
...       print line.rstrip()
... 
Line 1
Line 2
Line 3
Line 4

您可以使用,来取消自动\n

>>> with open("test.txt") as f:
...    for line in f:
...       print line,
... 
Line 1
Line 2
Line 3
Line 4

在Python 3.x中使用print function,它也可以在Python 2中导入。

干杯!