在文本文件的所有行中搜索字符串:Python

时间:2011-10-21 18:14:30

标签: python search loops

在这里遇到问题所以希望可以使用一些帮助。

我有一个文本文件,每行都有一个ID号和一组“描述符”。描述符对于每一行可以是唯一的也可以不是唯一的(它们可以在整个文档中多次使用)。

我基本上想要识别包含某个描述符的所有ID号...我的代码正在运行,但它只找到描述符的第一次出现,而不是所有这些。有什么快速解决方法吗?

所有描述符都在列表中。 文本文件示例:

ID_45555 (tab) some irrelevant data (tab) **DESCRIPTOR1** DESCRIPTOR2 DESCRIPTOR3

ID_55555 (tab) some irrelevant data (tab) DESCRIPTOR200 **DESCRIPTOR1** DESCRIPTOR599

代码:

for line in file:
    line = line.strip()
    line = line.split("\t")
    IDNUMBER = line[0]
    DESCRIPTOR = line[2]
    for x in total_list:
        if x in DESCRIPTOR:
            print x, DESCRIPTOR

1 个答案:

答案 0 :(得分:0)

我建议使用dict,将描述符作为键,将相应的ID作为值。您浏览文件并在每行,将ID添加到每个描述符下的字典中的列表中。例如:

by_descriptors = collections.defaultdict(list)
for line in file:
    id, _, descriptors = line.strip().split("\t")
    for d in descriptors.split():
        by_descriptors[d].append(id)
# to find all IDs for a given descriptor:
by_descriptors.get(id, [])
相关问题