为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

大话西游666 2019-11-17 16:12:44
如何跳转到一个巨大的文本文件中的特定行?以下代码是否有其他替代方法: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)使用未知但不同长度的行处理一个巨大的文本文件,并且需要跳转到我事先知道的特定行?当我知道我至少可以忽略文件的前半部分时,我会逐个处理它们。寻找更优雅的解决方案,如果有的话。
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

inecache:

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



查看完整回答
反对 回复 2019-11-18
?
ITMISS

TA贡献1871条经验 获得超8个赞

如果线条的长度不同,你真的没有那么多的选项...你可能需要处理行结束字符以了解你何时进展到下一行。

但是,您可以通过将最后一个参数更改为“打开”到非0的值来显着加快速度并减少内存使用量。

0表示文件读取操作是无缓冲的,这非常慢并且磁盘密集。1表示文件是行缓冲的,这将是一种改进。大于1的任何东西(比如8k ......即:8096或更高)将文件的块读取到内存中。你仍然可以访问它for line in open(etc):,但是python一次只能进行一些操作,在处理后丢弃每个缓冲的块。



查看完整回答
反对 回复 2019-11-18
  • 3 回答
  • 0 关注
  • 373 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信