当前位置: 首页 > 面试题库 >

在Python中从大文件删除行的最快方法

欧阳君浩
2023-03-14
问题内容

我正在Linux系统上使用非常大的文本文件(〜11GB)。我正在通过正在检查文件错误的程序来运行它。一旦发现错误,我需要修复该行或完全删除该行。然后重复…

最终,一旦我对流程感到满意,我便将其完全自动化。但是,现在让我们假设我正在手动运行它。

从此大文件中删除特定行最快(就执行时间而言)是什么?我想到了用Python进行此操作…但是可以接受其他示例。该行可能在文件中的 任何位置

如果是Python,则采用以下接口:

def removeLine(filename, lineno):

谢谢,

-aj


问题答案:

对于同一文件,您可以同时具有两个文件对象(一个用于读取,一个用于写入):

def removeLine(filename, lineno):
    fro = open(filename, "rb")

    current_line = 0
    while current_line < lineno:
        fro.readline()
        current_line += 1

    seekpoint = fro.tell()
    frw = open(filename, "r+b")
    frw.seek(seekpoint, 0)

    # read the line we want to discard
    fro.readline()

    # now move the rest of the lines in the file 
    # one line back 
    chars = fro.readline()
    while chars:
        frw.writelines(chars)
        chars = fro.readline()

    fro.close()
    frw.truncate()
    frw.close()


 类似资料:
  • 问题内容: 我正在尝试删除包含特定字符串的特定行。 我有一个名为 numbers.txt 的文件,其内容如下: Peter· Tom TOM1 Inflammation 我要删除的是文件中的那个 tom ,所以我做了以下功能: 输出为: 彼得· 颜 如您所见,问题在于该函数删除了 tom 和 tom1 ,但是我不想删除 tom1 。我只想删除 tom 。这是我想要的输出: 彼得 TOM1 燕 有什

  • 本文向大家介绍从PHP中的文件中删除最后一行,包括了从PHP中的文件中删除最后一行的使用技巧和注意事项,需要的朋友参考一下 从文件中删除最后一行是一个简单的过程,只需几行代码即可完成。 此脚本中方法的局限性在于,如果文件很大,则将整个文件传递到数组中将占用大量内存,从而有可能导致服务器崩溃。最好的方法不是执行此操作,而是从文件末尾开始直到找到第一个换行符为止。以下脚本将一次咬掉50个字符,直到找到

  • 问题内容: 如何使用python删除文件的最后一行? 输入文件示例: 输出文件示例: 我创建了以下代码来查找文件中的行数-但我不知道如何删除特定的行号。 问题答案: 您可以使用上面的代码,然后: 这将为您提供包含除最后一行以外的所有行的行数组。

  • 问题内容: 我有两个文件,和。 有大约14000条线,大约有20亿条线。 每行有一个字段,而有3个字段,通过,以分隔。 我想从中找到匹配项的所有行(或者,如果我们不想花费额外的时间来拆分的值,则可以找到行中的任何行)。 file1.txt(大约14000行, 未排序 ): file2.txt(大约20亿行, 未排序 ): 预期输出: 这是我尝试过的,似乎要花几个小时才能运行: 我想知道是否有更好,

  • 问题内容: 我有一个像这样的textfile.txt: 如何删除最舒适的前三行和最后一行? 问题答案:

  • 问题内容: 我在文件中有一个ASCII表,我想从中读取一组特定的行(例如,4003至4005行)。问题是该文件可能非常长(例如,十万到几百万行),我想尽快这样做。 错误的解决方案 :读取整个文件,然后转到这些行, 更好的解决方案 :遍历每行,以便不将其全部存储在内存中http://codingdict.com/questions/775 最佳解决方案? 但这仍然需要遍历每一行。是否有更好的(从速度