2016-11-14 173 views
0

我试图将包含DNA序列的文本文件转换为Python中的字典。该文件按列设置。python:将dna序列文本文件读到字典

TTT F 
TCT S 
TAT Y 
TGT C 
TTC F 


import os.path 

if os.path.isfile("GeneticCode_2.txt"): 
    f = open('GeneticCode_2.txt', 'r') 
    my_dict = eval(f.read()) 

设法得到它:

my_dict = {TTT: F, TCT: S, TAT: Y} 

回答

2

可以使用对(2元组)的迭代使用dict构造函数,并将它传递文件的分割线:

with open('GeneticCode_2.txt', 'r') as f: 
    my_dict = dict(line.split() for line in f) 
    # works only if file only contains lines that split into exactly 2 tokens 
+0

当我尝试这个以下错误发生时:ValueError:字典更新序列元素#64有长度0; 2是必需的 – Liam

+0

您的文件中可能有空行。你可以检查这样的线路。 – schwobaseggl

+0

解决了,在文本文件底部几乎没有多余的空格,现在就工作了。谢谢! – Liam

0
d = {} 
with open("GeneticCode_2.txt") as infile: 
    for line in infile: 
     k,v = line.strip().split() 
     d[k] = v 
0

这不是最简单的方式,但它非常易读。

my_dict = dict() 

for line in f.readlines(): 
    parts = line.strip().split() 
    if not len(parts) < 2: 
     my_dict[parts[0]] = parts[1]