2017-02-16 88 views
0
get_number = int(raw_input("How many bootloogs do you wish to upload? ")) 

我想獲取用戶輸入的txt文件的最後一行。例如,如果get_number = 2 最後3行是多餘的。我將在文本結尾處獲得第4行和第5行。獲取循環內的文本文件的最後一行

first_log = file(file_success, 'r').readlines()[-4] 
    second_log = file(file_success, 'r').readlines()[-5] 

如果get_number = 3

然後,我將需要添加另一條線路。

third_log = file(file_success, 'r').readlines()[-6] 

get_number可以達到9

最後,我會將該數據寫入TXT文件。

with open(logs_file, "a+") as f: 
       f.write("===========================================") 
       f.write(ip) 
       f.write("===========================================\r\n") 
       f.write(first_log) 
       f.write(second_log) 
       f.close() 

我該如何實現循環?

+0

如果它總是從4號線啓動從最後? – Haris

+0

是@哈里斯。謝謝你的幫助。 – pydev

回答

0

如果你的日誌文件可以容納整到內存中,你可以切片和扭轉線:

log_lines = file(file_success, 'r').readlines() 

with open(logs_file, "a+") as f: 
    f.write("===========================================") 
    f.write(ip) 
    f.write("===========================================\r\n") 
    f.write("".join(log_lines[-4:-4-get_number:-1])) 
    f.close() 
1

您可以使用類似這樣

get_number = int(raw_input("How many bootloogs do you wish to upload? ")) 
all_lines = file(file_success, 'r').readlines() 

extracted_lines = [] 
for i in range(get_number): 
    extracted_lines.append(all_lines[-4 - i]) 
相關問題