【发布时间】:2015-05-28 14:08:34
【问题描述】:
我有一个约 3000 行长的日志文件,我需要找到某个字符串的第一次出现。哪种方式是最好/最有效的方式?
with open(filename, 'r') as f:
match = re.search(r'^EXHAUST.*', f.read(), re.MULTILINE)
或
with open(filename, 'r') as f:
for line in f:
match = re.match(r'EXHAUST.*', line)
或者有没有更好的方法我没有想到?
【问题讨论】:
-
“大”有多大?
-
好吧,如果您只需要第一次出现 - 逐个字符串读取并在找到子字符串后中断最有可能为您节省一些时间。
-
该行是否以字符串开头(如您的 re 所示),字符串是硬编码还是模式?一般来说,如果它是一个固定的字符串,那么使用字符串方法是要走的路,而不是
re。 -
@Lutz Horn 它的长度约为 3000 行
-
@Ripread 这是一个小文件。