Skip to main content
 首页 » 编程设计

python之如何将字典表写入文本文件

2025年05月04日11jiqing9006

dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84,  
   'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10} 

我做到了

for k,v in dic.items():     
    a,b = k.split(':')     
    print a.ljust(30), b.ljust(30), v     

得到这个,

S00         D58          1     
M23         Q14          1    
S43         H52          84    
S43         H53          2    
S43         H50          5    
S43         H57          1    
M87         E11          10  

我想将此表保存到制表符分隔的文本文件中。所以我试过了

data = a.ljust(30), b.ljust(30), v     
f.write(str(data))     
f.close() 

但是我得到了

('S00', 'D58', 1)('M23', 'Q14', 1)('S43', 'H52', 84)('S43', 'H53', 2)('S43', 'H50', 5)('S43', 'H57', 1)('M87', 'E11', 10)  

而不是我想要的制表符分隔表格?

如何让我的文件输出与我打印的内容相匹配?

请您参考如下方法:

这是 Pandas 的方式。字典被转换为具有列 key 和 val 的 DataFrame,其中包含字典的键和值。然后,根据字符串分隔符 :,通过将 key 列分成两列来创建第二个数据框。最后,将两个数据帧合并并导出为 TSV 文件:

dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84, 'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10} 
     
originalDF = pd.DataFrame(dic.items()).rename(columns={0: 'key', 1: 'val'}) 
split_keysDF = pd.DataFrame(originalDF['key'].str.split(':').tolist()) 
finalDF = split_keysDF.join(originalDF['val']) 
 
finalDF.to_csv('test.tsv', '\t', header=False, index=False)