2015-12-03 87 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] 
    ...: 
相關問題