使用python在txt中查找匹配行

使用python在txt中查找匹配行,python,string,Python,String,我可以使用python测试字符串是否位于文本文件中,如下所示: if(pdfname in open(filename).read()): //do something 但我如何才能证实呢?我要匹配的线显示出来。谢谢。只需在文件上循环: handle = open(filename, 'r') for line in handle: if pdfname in line: print line handle.close() 您可以使用下面的第二条for语句打印出相关行,

我可以使用python测试字符串是否位于文本文件中,如下所示:

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

但我如何才能证实呢?我要匹配的线显示出来。谢谢。

只需在文件上循环:

handle = open(filename, 'r')

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

handle.close()

您可以使用下面的第二条
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)

你如何验证它?如果您不相信Python能够正确地处理该代码段,那么为什么您会相信它不会撒谎并打印出包含
pdfname
的随机垃圾呢?:-)我只是打印出文件,自己做。@paxidiablo我只是用另一种方法来测试匹配行,结果证明代码是错误的,与这个版本相比,这个版本可能是正确的。并不是说我不信任python,而是我不太信任google search中的代码,所以我需要验证它。记住,默认情况下,比较区分大小写,两次检查文件效率很低。@Amber,我不主张两次检查文件,我的答案只是我添加到现有脚本中用于说明的结尾部分。我会澄清的。