首页 > 解决方案 > 给定名称列表,搜索文本文件,将找到名称的整行保存到新变量中

问题描述

在非结构化文本文件中搜索名称并获取他们的从属关系。

编程新手:给定一个名称列表,我想搜索一个文本文件。找到名称后,我想抓取整行并将其保存到新变量中。然后我想将该变量拆分为第一个逗号的左右两侧并保存为两个新变量(名称和隶属关系)。我不确定这是否是最有效的方法,并且我一直坚持获得有效的代码。

首先,我尝试打印出找到匹配项的每一行。

def search_for_lines(filename):
    with open(filename, 'r', encoding="utf8") as f:
        for i in range(0, len(full_name)):
            for line in f:
                if full_name[i] in line:
                    print(line)

我的输出只有一行包含列表中的第一个名字,所以我假设嵌套 for 循环的逻辑是关闭的。请帮助我了解发生了什么?

先感谢您。

标签: python

解决方案


对于每一行,检查它是否包含名称。如果是,请保存该行。对于每个保存的行,将其拆分为名称和从属关系。这假定这full_name是一个字符串列表。

saved_lines = []
with open(filename, 'r', encoding='utf8') as f:

    for line in f:
        for full in full_name:
            if full in line:
                saved_lines.append(line)

for line in saved_lines:
    name, affiliation = line.split(',')

推荐阅读