2015-12-03 83 views
0

我想遍历除了最后一行以外的所有行并打印它们。 我能找到一些shell命令来打印除最后一行以外的所有行,但我想使用python遍历除最后一行以外的所有行。请求帮助。如何遍历除python以外的文件中的所有行?

+0

最后几行? – Clement

+1

为什么不循环所有行,但只是对待最后一行不同? *阅读*最后一行会有什么伤害吗? –

+0

是的,我解析基于分隔符的行并将它们存储在别处,alst行不是我想要存储的。 – Krishna

回答

0

最好的办法是使用一个排除列表的最后一个元素的列表片段。

def print_lines(lst): 
    for line in lst[0:len(lst)-1]: 
     print(line) 

这种方法不依赖于换行符是否存在于最后一行或不的结束。

+0

谢谢。但即时通过文件循环,如“for file in filehandler:”。我没有通过一个列表 – Krishna

1

您必须阅读每一行,保存它,然后在下一个迭代中与它们一起使用。这样,你永远不会处理最后一行。

prev_line = None 
for line in filehandler: 
    if prev_line is not None: 
     print prev_line 
    prev_line = line 
+0

非常感谢,你能多解释一下吗 – Krishna

+0

当你读第一行时,'prev_line'是'None',所以你不用做任何事情。当你读第n行时,prev_line是第(n-1)行。当你阅读最后一行时,'prev_line'是倒数第二行。将它设置为最后一行后,退出循环,以便它永远不会被使用。 – chepner

0

请试试这个代码:可能我问什么

In [1]: with open(filename) as f: 
    ...:  data = f.read().split('\n') 
    ...:  

In [2]: for id in range(len(data) -1): 
    ...:  print data[id] 
    ...: 
相关问题