使用python在文本中找到匹配的行

时间:2011-10-31 03:26:07

标签: python string

我可以测试一个字符串是否在python的文本文件中,如下所示:

if(pdfname in open(filename).read()):
   //do something

但我怎么能验证呢?我希望匹配的行显示出来。感谢。

2 个答案:

答案 0 :(得分:1)

只需循环遍历文件:

handle = open(filename, 'r')

for line in handle:
  if pdfname in line:
    print line

handle.close()

答案 1 :(得分:1)

您可以使用下面的第二个for声明打印相关行,我已将其添加到您现有的代码中以供说明:

pdfname = "statementConcentrator"
if (pdfname in open("line56.good").read()):
    print "Found it"

lineNum = 0
for line in open("line56.good").readlines():
    lineNum = lineNum + 1
    if pdfname in line:
        print "#%5d: %s"%(lineNum, line[:-1])

这会输出您当前的行和我的输出以进行验证:

Found it
#  115:  statementConcentrator=0

并且,检查该文件,确实就是它找到的行。

请注意,您可以按如下方式使用脚本在单个循环中执行这两个作业:

pdfname = "statementConcentrator"
lineNum = 0
count = 0
for line in open("line56.good").readlines():
    lineNum = lineNum + 1
    if pdfname in line:
        print "#%5d: %s"%(lineNum, line[:-1])
        count = count + 1
print "Found on %d line(s)."%(count)