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

如何跳转到巨大文本文件中的特定行?

燕翔飞
2023-03-14
问题内容

以下代码是否有替代方法:

startFromLine = 141978 # or whatever line I need to jump to

urlsfile = open(filename, "rb", 0)

linesCounter = 1

for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)

    linesCounter += 1

如果我正在处理一个巨大的文本文件(~15MB),其行数未知但长度不同,并且需要跳转到特定行我事先知道哪个号码?当我知道我至少可以忽略文件的前半部分时,我很难一一处理它们。寻找更优雅的解决方案(如果有)。


问题答案:

行缓存:

linecache模块允许人们从Python源文件中获取任何行,同时尝试使用缓存在内部进行优化,这是从单个文件读取许多行的常见情况。traceback模块使用它来检索源行以包含在格式化的追溯中…



 类似资料:
  • 问题内容: 以下代码是否有替代方法: 如果我正在处理一个巨大的文本文件,其行数未知但长度不同,并且需要跳转到特定行我应该事先知道哪个号码?当我知道我至少可以忽略文件的前半部分时,我很难一一处理它们。寻找更优雅的解决方案(如果有)。 问题答案: 由于你不知道换行符在哪里,因此无法至少一次不读入文件就无法跳转。你可以执行以下操作:

  • 问题内容: 我有一个巨大的XML文件(15 GB)。我想将XML文件中的“文本”标签转换为单个页面。 样本XML文件: 我最初使用DOM解析器,但它使JAVA OUT OF MEMORY(Valid)不足。现在,我已经使用STAX编写了JAVA代码。它运作良好,但是性能确实很慢。 这是我编写的代码: 这段代码运行良好。(忽略任何小错误)。根据我的理解,XMLStreamConstants.CHAR

  • 问题内容: 我在具有1GB RAM的Mac Mini上使用Python 2.6。我想阅读一个巨大的文本文件 因此,文件中的每一行都由两个逗号分隔的整数值组成的元组。我想阅读整个文件,并根据第二列对其进行排序。我知道,我可以进行排序而无需将整个文件读入内存。但我认为对于500MB的文件,由于我有1GB的可用空间,因此仍应该可以在内存中进行处理。 但是,当我尝试读取文件时,Python似乎分配了比磁盘

  • 问题内容: 我有一个巨大的文本文件(〜1GB),可惜我使用的文本编辑器无法读取这么大的文件。但是,如果我可以将其分为两部分或三部分,那就没问题了,因此,作为练习,我想用python编写一个程序来做到这一点。 我想让程序执行的操作是找到文件的大小,将该数字分成多个部分,然后对于每个部分,逐块读取至该点,写入 文件名.nnn输出文件,然后读取- 到下一个换行符并将其写入,然后关闭输出文件,等等。显然,

  • 问题内容: 我有一个很大的文本文件,但是没有换行符。它只包含一个很长的字符串(包含所有ASCII字符的1行巨大的字符串),但是到目前为止一切正常,因为我可以将整行读入Java的内存中,但是我想知道是否有内存由于文件变得如此之大(如5GB +),并且程序无法一次将整个文件读入内存,因此出现泄漏问题,那么在那种情况下,读取此类文件的最佳方法是什么?我们可以将巨大的线条分成2个部分,甚至多个块吗? 这是

  • 我不知道如何从文件中获取特定的文本行。假设文本文件是: 文本文件(标记)的第二行怎么弄?我只需要读就行了,不是编辑就行了。