我可以测试一个字符串是否在python的文本文件中,如下所示:
if(pdfname in open(filename).read()):
//do something
但我怎么能验证呢?我希望匹配的行显示出来。感谢。
答案 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)