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