字符串在文件中的位置

时间:2014-03-05 10:00:07

标签: python python-3.x

我想在文件中找到某个字符串的位置,以便知道我应该从哪里开始编辑。

目前,我正在使用re模块转换bool列表中的文件,并使用index函数获取位置。

问题:是否有更好/更短的方法来实现这一目标?


在这个例子中,我想找到第一行,其中出现字母“b”。

示例文件:

a
b
c
b

代码:

#!/usr/bin/python

import re

infile = open("examplefile","r")
indata = infile.readlines()
infile.close()

finder = re.compile("b")
matches = [True if finder.search(s) else False for s in indata]
print(matches.index(True))

输出:

1

2 个答案:

答案 0 :(得分:2)

我们可以使用生成器表达式,如此

with open("Input.txt") as in_file:
    print(next(idx for idx, line in enumerate(in_file) if "b" in line))
# 1

注意:如果在文件中找不到要搜索的字符串,则会引发StopIteration

答案 1 :(得分:0)

只是为了完整性,如果不必在python中执行,你可以使用bash的grep

    grep -nr 'string_to_search' your_file

它会在你的比赛前返回行数。