猿问

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

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

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

startFromLine = 141978 # or whatever line I need to jump tourlsfile = open(filename, "rb", 0)linesCounter = 1for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)

    linesCounter += 1

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


智慧大石
浏览 716回答 3
3回答

繁星淼淼

如果线条的长度不同,你真的没有那么多的选项...你可能需要处理行结束字符以了解你何时进展到下一行。但是,您可以通过将最后一个参数更改为“打开”到非0的值来显着加快速度并减少内存使用量。0表示文件读取操作是无缓冲的,这非常慢并且磁盘密集。1表示文件是行缓冲的,这将是一种改进。大于1的任何东西(比如8k ......即:8096或更高)将文件的块读取到内存中。你仍然可以访问它for line in open(etc):,但是python一次只能进行一些操作,在处理后丢弃每个缓冲的块。
随时随地看视频慕课网APP

相关分类

Python
我要回答