繁体   English   中英

检查列表中的元素是否存在于 txt 文件的字符串中(不工作) Python

[英]check if an element from a list exists in a strings of a txt file (not working) Python

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

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

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

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

如果行中存在列表中的任何项目,我想打印文本文件的行。 根据以上示例,所需的 output 应为:

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)

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

contn = main_file.read()

应该

contn = main_file.readlines()

直观的显式循环版本:

def find_lines_containing_any(filename, wanted_list):
    with open(filename, 'r') as dna_file:
       for dna_line in dna_file:
            for wanted in wanted_list:
                if wanted in dna:
                    yield dna

for dna in find_lines('test_file.txt', lst):
    print(dna)

使用for dna in contn ,您正在遍历字符,因为read()返回str object,您可以简单地执行以下操作:

main_file =  open('test_file.txt', 'r')
for line in main_file:
    if any(i in line for i in lst):
        print(line)

暂无
暂无

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

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