我正在尝试搜索包含大量无关信息的.txt文件,仅查找一些包含最重要信息的关键字。我想找到单词并打印出单词所在的行。
我对python还是很陌生,并认为我已经找到了它,但是我不知道如何为多个关键字扩展当前代码。
{{1}}
答案 0 :(得分:0)
您可以替换您的:
if searchPhrase1 in line:
与
if any([x in line for x in ['your', 'search', 'phrases']]):
,将检查列表中的每个项目以查看行中是否存在。如果至少有一个匹配项,则任何函数都将返回true。
答案 1 :(得分:0)
这是我解析文本的旧python脚本之一。
它使用了一些regx,但是应该可以让您到达想要去的地方。
#!/usr/bin/python
import sys
import os
import re
def readFile( fileName ):
try:
file myFile = open( fileName, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = myFile.read()
myFile.close()
return file_text
def writeFile( fileName, fileContent ):
ret = 1
try:
file myFile = open(fileName, "w")
except IOError:
print "There was an error writing to", fileName
sys.exit()
myFile.write(fileContent)
myFile.close()
return ret
str textContents = readFile("./myfile.txt")
list textLineList = textContents.splitlines()
for textLine in textLineList:
if re.match("(?:word1|word2|word3)*", textLine, re.I ):
print textLine
要进一步优化它,可以预编译正则表达式。但这应该已经是一个相当快的小脚本。