python 3.5为什么我的while循环省略了第一行?

时间:2016-10-31 05:07:31

标签: python while-loop

我正在尝试编写一个代码,其中我使用while循环读取txt文件中的每一行,直到看到没有任何内容的行,即\ n。我的txt文件和代码如下所示:

I like cats
But dogs are 
the best

although a tiger 
would make for
an awesome pet



file1 = input("Enter name of file: ") 
openfile1 = open(file1, "r")
data1 = openfile1.readline().strip()
while data1 !="":
    data1 = openfile1.readline().strip()
    print (data1)

我想要打印出来的是:

I like cats
But dogs are
the best

但是它省略了第一行并给了我:

But dogs are
the best

为什么省略我的第一行?

2 个答案:

答案 0 :(得分:4)

正如其他人所说,你已经读了一次,所以它没有显示出来。

另外,还有一种更简单的打印文件行的方法。

import os

with open('input.txt') as fl:
    for line in fl:
        print(line.strip())

答案 1 :(得分:0)

将print语句移动到while循环内的readline之前