繁体   English   中英

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

[英]searching for strings in all lines of a text file: Python

在这里遇到问题,希望可以有所帮助。

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

我基本上想识别出包含特定描述符的所有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

我建议为此使用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, [])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM