Skip to main content
 首页 » 编程设计

python之提高搜索循环python的效率

2025年05月04日8zhengyun_ustc

我写了一段代码,它读取一个文件,查找某行是否包含单词 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