我写了一段代码,它读取一个文件,查找某行是否包含单词 table_begin,然后计算行数,直到包含单词 table_end 的行。
这是我的代码 -
for line in read_file:
if "table_begin" in line:
k=read_file.index(line)
if 'table_end' in line:
k1=read_file.index(line)
break
count=k1-k
if count<10:
q.write(file)
我必须在约 15K 个文件上运行它,因为它有点慢(约 1 个文件/秒),我想知道我是否在做一些低效的事情。我找不到自己,所以任何帮助都会很棒!
请您参考如下方法:
当您执行 read_file.index(line) 时,您正在扫描整个行列表,只是为了获取您所在行的索引。这可能是让你慢下来的原因。相反,使用 enumerate()随时跟踪行号:
for i, line in enumerate(read_file):
if "table_begin" in line:
k = i
if "table_end" in line:
k1 = i
break
