Skip to main content
 首页 » 编程设计

python之在 Python 中将文件拆分为字典

2025年05月04日34insus

我只是一个初学者 python 用户,如果这是一个相当简单的问题,我深表歉意。我有一个包含两个列表的文件,列表由一个选项卡分隔。我想将其存储在字典中,因此每个条目都与选项卡后的相应条目相关联,这样:

cat hat 
mouse bowl 
rat nose 
monkey uniform 
dog whiskers 
elephant dance 

会分成

{'cat'; 'hat', 'mouse' ; 'bowl') etc. etc.  

这是一个很长的列表。

这是我尝试过的:

enhancerTAD = open('TAD_to_enhancer.map', 'r') 
list = enhancerTAD.split() 
 
for entry in list: 
    key, val = entry.split('\t') 
    ET[key] = val 
 
print ET 

这是我最近的尝试,以及我在下面得到的错误消息:

enhancerTAD = open('TAD_to_enhancer.map', 'r').read() 
ET = {} 
lst = enhancerTAD.split("\n") 
for entry in lst: 
  key, val = entry.strip().split(' ',1) 
  ET[key] = val 
 
enhancergene = open('enhancer_to_gene_map.txt', 'r').read() 
GE = {} 
lst1 = enhancergene.split("\n") 
for entry in lst1: 
  key, val = entry.strip().split(' ',1) 
  GE[key] = val 
 
geneTAD = open('TAD_to_gene_map.txt', 'r').read() 
GT = {} 
lst2 = geneTAD.split("\n") 
for entry in lst2: 
  key, val = entry.strip().split(' ',1) 
  GT[key] = val 

文件“enhancertadmaybe.py”,第 13 行,位于 key, val = entry.strip().split(' ',1) ValueError:需要超过 1 个值才能解包

请您参考如下方法:

你可以试试:

with open('foo.txt', 'r') as f: 
    print dict(line.strip().split('\t', 1) for line in f) 

结果:

{'monkey': 'uniform', 'dog': 'whiskers', 'cat': 'hat', 'rat': 'nose', 'elephant': 'dance', 'mouse': 'bowl'}