[英]Searching a text file and grabbing all lines that do not include ## in 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.