Python:在文本文件中查找多个单词的最接近匹配

时间:2014-11-16 07:12:54

标签: python parsing

我需要解析与此one类似的多个财务报表.txt文件。 .txt文件没有标准格式。但是,他们有类似的标题。我的目标是提取以。{1}}开头并以['Item', '7', 'Management', 'Analysis']结尾的.txt文件部分。列表内容和['Item', '8', 'Financial', 'Statements']中单词的顺序位于['Item', '7', 'Management', 'Analysis']之前。

我的想法是从:

开始
['Item', '8', 'Financial', 'Statements']

并循环遍历fdir = open('C:\\0001193125-13-416534.txt','r') lines = fdir.readlines() 中的每一行,然后使用difflib.get_close_matches查找上述关键字。但是,我有两个问题:(1)如何使用lines搜索多个单词? (2)我知道difflib只会提取匹配字,但我怎样才能使用它来查找difflib(列表index中的位置){{1找到这些词?

让我添加第三个问题:使用lines以适当的方式阅读txt文件并开始搜索匹配词,还是应该只使用lines

1 个答案:

答案 0 :(得分:2)

您可以在此使用re和f.read()。

f.read()返回一个字符串,而f.readlines()返回一个列表。

import re
x=f.read()
print re.findall(r"Item(?:(?!Item).)*7(?:(?!Item|7).)*Management(?:(?!Item|7|Management).)*Analysis[\s\S]*Item(?:(?!Item).)*8(?:(?!Item|8).)*Financial(?:(?!Item|8|Financial).)*Statements",x)