2016-11-14 172 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]