提高搜索循环python的效率

Rak*_*thi 1 python performance loops

我编写了一个代码来读取文件,查找一行是否包含该单词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)
Run Code Online (Sandbox Code Playgroud)

我必须在~15K文件上运行它,因为它有点慢(〜1个文件/秒),我想知道我是否做了一些效率低下的事情.我无法找到自己,所以任何帮助都会很棒!

Cla*_*diu 8

当你这样做时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
Run Code Online (Sandbox Code Playgroud)