使用python删除大文件中的特定行,怎样最优

用生成器比较好生成器处理大日志文本文本。https://zhuanlan.zhihu.com/p/21659182
■网友
1. 直接用 sedsed \u0026#39;/^a$/d\u0026#39; sample2. 用 Python 的话,可以直接用迭代方式遍历文件,代码示例:with open("delete_lines.txt") as f, open("delete_lines_output2.txt", "w") as f_out: for l in f: if l.strip() != "a": f_out.write(l)
■网友
with open(\u0026#39;file.txt\u0026#39;, \u0026#39;r\u0026#39;) as old_file: with open(\u0026#39;file.txt\u0026#39;, \u0026#39;r+\u0026#39;) as new_file: # 定位到需要删除的行,跳出循环时,seek_point 存放的是被删除行的行首的光标位置 while True: # 记录光标位置 seek_point = old_file.tell() if \u0026#39;a\u0026#39; in old_file.readline().strip().split(\u0026#39;.\u0026#39;): # 光标跳到被删除行的下一行行首 break # 设置光标位置,光标在被删除行的行首 new_file.seek(seek_point, 0) # 被删除行的下一行读给 next_line next_line = old_file.readline() # 连续覆盖剩余行,后面所有行上移一行 while next_line: new_file.write(next_line) next_line = old_file.readline() # 写完最后一行后截断文件,因为删除操作,文件整体少了一行,原文件最后一行需要去掉 new_file.truncate() 【使用python删除大文件中的特定行,怎样最优】


    推荐阅读