Skip to main content
 首页 » 编程设计

python之将多行作为一个字符串填充字典

2025年05月04日38www_RR

我有一个包含多行 FASTA 格式的文件,我想将其分解并用这些片段填充字典。

>piece_1  
Lorem ipsum dolor sit amet 
consectetur adipiscing elit. Nam a pellentesque mi.  
>piece_2  
Integer dignissim ultrices eros a consequat. Praesent vestibulum 
>piece_3  
Morbi eget sollicitudin mauris. Nunc varius felis  
vitae dui congue hendrerit. Nam semper venenatis auctor.   
Suspendisse potenti. Suspendisse facilisis velit vel convallis  
fringilla. Duis condimentum auctor mauris eu lobortis.  

我想根据上面的文本创建一个字典,其中包含所有单独的文本片段,键为 >piece_1 等。

到目前为止,我设法用所有键填充字典,但我不知道如何从文件中提取文本。

f = open('Output.txt', 'r') 
mydict = dict() 
 
for index, line in enumerate(f): 
    if line[:1]=='>': 
        mydict[index] = line #instead, the key should be line with the value being the relative text. 
        print(line, end='') 
 

请您参考如下方法:

我建议使用 Biopython ,它会比自己编写解决方案更健壮和简洁:

>>> from Bio import SeqIO 
>>> d = SeqIO.to_dict(SeqIO.parse('input.fa', 'fasta')) 

对于您的数据:

>>> d['piece_1'] 
SeqRecord(seq=Seq('Loremipsumdolorsitametconsecteturadipiscingelit.Namape...mi.', SingleLetterAlphabet()), id='piece_1', name='piece_1', description='piece_1', dbxrefs=[]) 
>>> str(d['piece_1'].seq) 
'Loremipsumdolorsitametconsecteturadipiscingelit.Namapellentesquemi.'