【发布时间】:2011-01-20 17:27:15
【问题描述】:
我正在 Linux 系统上处理一个非常大 (~11GB) 的文本文件。我正在通过一个检查文件是否有错误的程序运行它。一旦发现错误,我需要修复该行或完全删除该行。然后重复...
最终,一旦我对这个过程感到满意,我就会完全自动化它。不过现在,假设我是手动运行的。
从这个大文件中删除特定行的最快(就执行时间而言)方法是什么?我想用 Python 来做这件事……但会对其他例子持开放态度。该行可能在文件中的任意位置。
如果是 Python,假设如下接口:
def removeLine(filename, lineno):
谢谢,
-aj
【问题讨论】:
-
使用 grep -v 可能比使用 Python 更快
-
你要删除哪一行?您将如何识别它?这个问题的答案可能会对战略产生重大影响。
-
脚本解决方案绝对必要吗?大文本文件查看器 (swiftgear.com/ltfviewer/features.html) 应该能够处理该文件,您可以使用正则表达式搜索正确的行。
-
一个合适的文本编辑器(例如 gvim)对于较长的文本文件应该不会有太大的麻烦。 11GB 并不少见……
-
修改了问题以提供有关要求的更多详细信息,谢谢。
标签: python optimization