我有一个函数,逐行读取一个大的 .txt 文件。
作为参数,我给函数传递了应该从文件中哪一行开始读取的行索引。
首先,我使用 0 调用函数,以便它从开头开始读取。 最后,我再次调用函数并传递一个新的参数,但是当它重新进入函数时,for 循环语句中的索引仍然是之前的值 0。 :(
作为参数,我给函数传递了应该从文件中哪一行开始读取的行索引。
首先,我使用 0 调用函数,以便它从开头开始读取。 最后,我再次调用函数并传递一个新的参数,但是当它重新进入函数时,for 循环语句中的索引仍然是之前的值 0。 :(
from __future__ import print_function
import os
import sys
file = open("file.txt").read().splitlines()
for i, line in enumerate(file):
if file[i] == "@@@TC_FIN@@@":
fin = i;
#print (fin)
def AssembleTC(index):
while index < fin:
for index, line in enumerate(file):
if "@@@ ID:" in line:
print(file[index+1])
break
for index, line in enumerate(file):
if file[index] == "@@@TC_FIN@@@":
recursive = index;
#print (recursive)
break
AssembleTC(recursive+1)
AssembleTC(0)
对我来说,保持当前的语句与文件[index]访问过程非常重要。我读到过可以使用file.next()
之类的方法跳过行,但这并不起作用。
有没有办法跳过我想要的行数,或者从更新后的索引开始新的读取呢?Python 2.7.13 - 谢谢!
for index, line in enumerate(file):
时会从列表file
的开头开始枚举。 - tdelaneyfile.read(size)
期望以字节为单位的大小相同。如果你的行不是等大小的字节,你将无法计算要跳过到正确行所需的字节数。如果它们在字节上大小相等,file.seek(num_lines * line_size)
将从文件开头移动到num_lines。 - Matthew Cole