簡體   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