2013-11-10 80 views
0
my_file = open('file.txt') 
next_line = my_file.readline() 
while next_line != "": 
    print(next_line) 
    next_line = my_file.readline() 

此代码是正确的,它一次读取文件中的一行。我的问题是为什么他们使用next_line!=''这是什么意思?然后他们也说next_line = my_file.readline,这样做的目的是什么,我不明白整个循环。在python上读取文件

我的另一个问题是,如何更改此代码,以便在打印文件上的行时不会跳过一行?

+0

我已经找到了我的第二个问题,我必须做的是说打印(next_line.rstrip()) – user2971015

回答

1

while next_line != ""表示“行不空”。因此,循环意味着“打印next_line并将next_line设置为下一行,直到next_line为空,当next_line为空时,退出循环”。

在文件对象上调用.readline()最后会留下"\n"。所以你实际上正在打印行+ \ n,这就是为什么它会跳过一行。

尝试使用print(next_line[:-1])。这将打印除最后一个字符(\ n)以外的每个字符。

+0

也许过去的介绍使用Python文件的范围I/O,但应注意的是,尽管其他字符像'\ r'可能出现在文件每行的末尾(取决于系统),Python会默认将它们全部视为一个'\ n'。 – SimonT