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个文件/秒),我想知道我是否做了一些效率低下的事情.我无法找到自己,所以任何帮助都会很棒!
当你这样做时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)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |