python - 循环读取文件中的特定行(优化)

标签 python

我正在读取文本文件中的特定行。这是我的代码:

file.seek(0)
for j, ln in enumerate(file):
   if j == line_number
      line = ln   # i'm getting the line
      break

当我在“循环”中使用此代码时,花费了很长的时间,其中 line_number 每回合都是随机的。 我也试过 linecache.getline() 但它需要每次都调用 linecache.clearcache() ,所以它不是更好。

是否有更快的解决方案?内存无关紧要。

最佳答案

如果内存真的无关紧要:

lines = file.readlines()

line = lines[line_number]

您一次读取文件,将其存储在内存中,然后从那里访问它。

编辑:内存重要的地方:

from itertools import dropwhile

line = next(dropwhile(lambda x: x[0]==line_number, enumerate(file)))[1]

我们可以使用 itertools.dropwhile() 忽略这些行,直到找到我们需要的行。

关于python - 循环读取文件中的特定行(优化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439368/

相关文章:

python - 无法理解这个 python 装饰器

python - 使用 sklearn 进行多项式回归的最简单方法?

python - "or"运算符不返回 bool 的动机是什么?

python - Pandas 的前一组均值变化

python - 如何从python中的.tar存档中提取特定文件?

python - NLTK:包错误?朋克和泡菜?

python - 在 python 中调用编辑器 ( vim )

python - 创建相应的字母数字元素列表

Python - 在 setup.py 安装之前和之后导入包模块

python - PyMySQL:我在 python 中导入 PyMySQL 模块时遇到错误