【发布时间】:2017-10-09 16:44:03
【问题描述】:
在for line in f: 期间,我的代码保存了包含特定数据的行。不幸的是,我必须阅读整个文件以确保它是最新的数据。
第二次,我必须检查整个文件(5000-8000 行之间),直到我得到正确的行(对于每个数据)。
所以,我的问题是,可以打开一个文件并转到特定行,阅读它并再次执行。我看到了不同的答案,但我无法将所有文件保存在 str 中,因为我的设备上没有那么多内存……这就是我想直接在文件中搜索的原因。
【问题讨论】:
-
如果行具有固定大小或之前的行不改变,是的,通过计算/缓存文件中的行位置,否则这是不可能的。最好使用数据库或二进制文件。
-
在 f 中使用 for line 时,使用生成器读取数据。所以整个文件永远不会一次加载到内存中。
-
不幸的是,没有@Jean-FrançoisFabre,尺寸没有固定也无法固定。这是我的第一个想法。
-
@NM,我知道这一点,我想保留这个过程。这就是为什么我不想使用
readlines()。 -
相关(但不重复):stackoverflow.com/questions/620367/…
标签: python python-2.7