获取循环内的文本文件的最后一行

问题描述:

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

如果你的日志文件可以容纳整到内存中,你可以切片和扭转线:

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() 

您可以使用类似这样

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])