![](/img/trans.png)
[英]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.