用python搜索大文本文件

时间:2015-12-17 12:15:32

标签: python

我有以下脚本来搜索主文件中的标题列表。

头文件示例:

header1
header2
header3

一个主文件,其中包含不同格式的标题和许多其他数据。

主文件提取:

header1
line1
line2
line3
line4

header2
line1
line2

header3
line1

当我找到标题时,我希望报告它之后的每一行,直到下一个空白行。采用上面主文件摘录中的格式。

目前我可以使用下面的脚本在主文件中找到标题,但我无法报告后面的每一行。

到目前为止,所有的尝试都没有成功,我很高兴知道我的尝试是否可行。

list_file = open("header.txt")
search_words = []
for word in list_file:
    search_words.append(word.strip())
list_file.close()

matches = []

master_file = open("master_file.txt")

for line in master_file:
    current_line = line.split()

    for search_word in search_words:
        if search_word in current_line:
            matches.append(line)
            break

1 个答案:

答案 0 :(得分:1)

这会有用吗?这将提取header.txt

中列出的标题内所有行的内容
list_file = open("header.txt")
search_words = [word.strip() for word in list_file]
list_file.close()

matches = []

master_file = open("master_file.txt")


store = False 
for line in master_file:
    if not store and line.strip() and any(line.strip() in s for s in search_words):
        store = True
    if not line.strip():
        print(line)
        store = False

    if store:
           matches.append(line)

但是,假设您的文件结构遵循您发布的内容。不处理例如缺少空白行或其中一行中包含的标题词等异常。