首页 > 解决方案 > 检查列表中的元素是否存在于txt文件的字符串中(不工作)Python

问题描述

我尝试了很多方法,但我根本没有得到任何输出。我有一个包含不同类型字符串的列表:

lst=['ATCGG','GTAACGCT','AATCGAT',...]

我有一个如下的文本文件:

>seq1
NNNGTAACGCTNNN
>seq2
NNNNNAATCGATNNNN
>seq3
NNNNNNNN
.
.
.

如果行中存在列表中的任何项目,我想打印文本文件的行。根据上面的例子,期望的输出应该是:

NNNGTAACGCTNNN
NNNNNAATCGATNNNN

我使用了下面的命令,但没有打印出来:

main_file =  open('test_file.txt', 'r')
contn = main_file.read()
#print(contn)


for dna in contn:
    if any(i in dna for i in lst):
        print(dna)

标签: pythonlistfor-loop

解决方案


您需要readlines代替read, read 将创建单个字符串,因此当您迭代时,dna实际上只是单个字符

contn = main_file.read()

应该

contn = main_file.readlines()

推荐阅读