如何清除内存中历史Server开头行,或仅打印server.txt内最后一条该行?
解决只保留最后一条匹配行的问题
没问题!你当前的代码会把所有匹配到的Server开头的行都打印出来,要实现只保留并打印最后一条符合要求的行,其实只需要做个小调整——不用把所有匹配行都存在内存里,只用一个变量跟踪最新的那条就行。
修改后的代码:
filepath = 'server.txt' last_server_line = None # 初始化变量,用来存最后一条匹配的行 with open(filepath) as fp: for single_line in fp.readlines(): if single_line.startswith("Server"): last_server_line = single_line # 每次匹配到就更新变量,覆盖旧的内容 # 遍历完文件后,再打印最后一条匹配的行(确保有匹配结果才打印) if last_server_line is not None: print(last_server_line)
思路说明:
- 用
last_server_line变量专门存储最新找到的符合条件的行,每次遇到新的匹配行就覆盖掉之前的内容,这样内存里始终只保留一行数据,不会留存历史记录。 - 等整个文件遍历完成后,再打印这个变量的值,就能得到最后一条
Server开头的行啦。
内容的提问来源于stack exchange,提问作者Gracjan
相关产品推荐
相关产品推荐

