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

时间:2017-02-16 10:58:52

标签: python file loops

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

如何通过循环实现这一目标?

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分: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()