readlines gives me additional linebreaks python2.6

2019-02-24 11:29发布

I have problems with the following code:

file = open("file.txt", "r")
lines = file.readlines()
print lines[0]
print lines[1]
print lines[2]
file.close()

This code gives me linebreaks between the lines. So the output is something like this:

line0

line1

line2

How can this be solved?

3条回答
我命由我不由天
2楼-- · 2019-02-24 11:58

Do strip after each line. File has new line as last character. You have to remove it when you read it.

print line[index].strip()
查看更多
Deceive 欺骗
3楼-- · 2019-02-24 12:09

readlines() will return an array of lines. Every line ends up with a line break.

If you want to print all lines in a block, simply do this:

with open("file.txt", "r") as file:
    lines = file.readlines()
    print "".join(lines)

Use with, you can ever save a file.close()

查看更多
放荡不羁爱自由
4楼-- · 2019-02-24 12:17

print adds a newline. Strip the newline from the line:

print lines[0].rstrip('\n')
print lines[1].rstrip('\n')
print lines[2].rstrip('\n')

If you are reading the whole file into a list anyway, an alternative would be to use str.splitlines():

lines = file.read().splitlines()

which by default removes the newlines from the lines at the same time.

查看更多
登录 后发表回答