Python在文本文件中搜索关键字,并在关联的行中显示多个关键字

时间:2018-08-31 18:16:58

标签: python text-extraction

我正在尝试搜索包含大量无关信息的.txt文件,仅查找一些包含最重要信息的关键字。我想找到单词并打印出单词所在的行。

我对python还是很陌生,并认为我已经找到了它,但是我不知道如何为多个关键字扩展当前代码。

{{1}}

2 个答案:

答案 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

要进一步优化它,可以预编译正则表达式。但这应该已经是一个相当快的小脚本。