在文件中查找字符串的最快方法

3 python python-2.7

我尝试了多种在文件中查找字符串的方法,但都很慢。我所需要的只是:

  • 在文件中查找字符串
  • 打印字符串所在的行

到目前为止我所做的只是读取一个文件(尝试了很多方法),然后检查我正在查找的字符串是否位于当前行。如果没有,请检查下一行,依此类推。

做这个的最好方式是什么?

hil*_*lem 7

以下内容适用于子字符串第一次出现的情况somethingNone如果没有找到匹配则分配;文件被延迟读取直到第一个匹配项。

with open('input.txt') as f:
    line = next((l for l in f if something in l), None)
Run Code Online (Sandbox Code Playgroud)

要查找所有匹配项,您可以使用列表理解:

with open('input.txt') as f:
    lines = [l for l in f if something in l]
Run Code Online (Sandbox Code Playgroud)

我不知道你是否可以在纯Python中比这快得多。