[英]check if a string from a file exists in a list of list of strings: 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.