在Python中提取txt文件的行号

时间:2018-03-23 16:34:03

标签: python file line-numbers

我想知道是否有办法使用Python找到文本文件中一行的行号。

因此,例如,如果我们有文件textfile.txt

abc
deff
ghi
jkl
EOF

然后我喜欢像func(FILE,TEXT)这样的函数,它可以通过以下方式工作:

Input:  func(textfile.txt, "ghi")
Output: 3

4 个答案:

答案 0 :(得分:1)

您可以在一行中调用next()来执行此操作,该生成器使用enumerate()函数来获取行的索引。

所以,作为一个功能:

def func(f, t):
    return next(i for i, l in enumerate(open(f).read().split('\n'), 1) if l == t)

将通过以下内容调用:

func('textfile.txt', 'ghi') # --> 3

注意:enumerate(..., 1)诀窍来自@KeyurPotdar,所以信用

答案 1 :(得分:0)

file_name="test.txt"
phrase="line3"
with open(file_name) as f:
    for i, line in enumerate(f, 1):
        if phrase in line:
           print(i)

答案 2 :(得分:0)

也许你正在寻找:

def fn(fname, substr):
    with open(fname) as text:
        for n, line in enumerate(text, start=1):
            if line.startswith(substr):
                return n
    return -1

不要害怕学习关于字符串函数,文件I / O,上下文管理器等的python文档。你会对这样的事情变得多么容易感到震惊。

答案 3 :(得分:0)

这可能会有所帮助。

def LineNumber(phrase,textObjext):
    for i, line in enumerate(textObjext, 1):
        if phrase in line:
           return i

file_name="test.txt"
phrase="deff"
text = open(file_name,'r')
line = LineNumber(phrase,text)
print(line)