python - 如果有的话(s in line for s in list):打印行...不工作
问题描述
我试图仅提取文件中包含列表中字符串的行,例如 MSTRG.2 在我的列表中,我希望在我的输出文件中包含包含此字符串的行。我使用了下面的代码,但由于某种原因,提取的行不一定包含列表中的字符串。
id_list = []
for line in gff_compare:
split_line = line.strip().split('\t')
class_code = split_line[2]
if class_code == 'u':
if split_line[3] not in id_list:
id_list.append(split_line[3])
for line in feature_counts:
split_line_2 = line.strip().split('\t')
string_ids = split_line_2[0]
if any(s in string_ids for s in id_list):
outfile.write(line)
outfile.close()
id_list
仅包含 1,511 个元素,而outfile
有超过 30,000 行(包含列表中有字符串的行和列表中没有字符串的行)。无法弄清楚为什么它不仅根据列表中的字符串拉出我想要的行。