如何检查文本文件中的关键字,并检索包含重复分隔符之间关键字的多个文本段

时间:2017-05-01 17:55:54

标签: python file parsing text

我有一个包含一些关键字的列表,我正在尝试解析在重复分隔符之间包含多段文本的文本文件。我正在尝试检查每个细分中是否存在关键字。如果存在任何关键字,那么我只想恢复包含关键字的那些细分(在分隔符之间)。

我的文本文件(ParseInput.txt)如下:

START
cow
sheep
apple
END
//
START
goat
orange
pear
END
//
START
peach
pineapple
watermelon
END
//

我有一个简短的python脚本,用于在文本文件中查找关键字:

from sys import argv

script, ParseInput = argv

import re

animal = ['cow', 'sheep', 'python']

inputFile = open(ParseInput)
parseOutput = re.findall('START(.*?)END', inputFile.read(), re.S)

for result in parseOutput:
  for i in animal:
    if i in result:
      print result

运行此脚本会产生以下输出:

cow
sheep
apple

cow
sheep
apple

问题是我只想要一个恢复段的实例。我认为我的for / if循环是问题所在,但我不确定如何解决这个问题,并对任何建议表示感谢!

1 个答案:

答案 0 :(得分:2)

  

如果存在任何关键字,那么我只想恢复   包含关键字的那些段(在分隔符之间)。

然后就这样做!使用any内置功能:

for result in parseOutput:
  if any(a in result for a in animal):
      print result

可能值得查看all内置的内容。