将txt文件作为字典加载到python脚本中

时间:2016-02-23 23:40:17

标签: python dictionary

我有一个txt文件(dictionary.txt),我想将其作为字典加载到我的脚本中。 我怎么能这样做?

file dictionary.txt

{'YAL008W': 25, 'YBR255W': 50, 'YGR164W': 37, 'YGR131W': 40, 'YNL003C': 11,
'YBR135W': 2, 'YBR160W': 6, 'YJL082W': 79, 'YJL142C': 4, 'YPL191C': 38,
 'YGL215W': 31, 'YKL074C': 33, 'YJL077C': 67, 'YKL096W-A': 22, 'YIL124W': 60,
 'YLR364C-A': 2, 'YPL039W': 58, 'YNL170W': 16, 'YGL141W': 62, 'YJL179W': 15,
 'YDR316W-A': 13, 'YDR316W-B': 139, 'YKL083W': 25, 'YOR009W': 25,
 'YKL029C': 395, 'YPL166W': 31, 'YKL052C': 20, 'YOL034W': 29, 'YBL008W': 42,
 'YIL062C': 2, 'YCL023C': 27}

代码:

f=open('dictionary.txt', 'r') 

with f as dic1:
     dictionary1=eval(dic1.read())   

这将它输入为字典,但我想知道是否有更快的方法。

2 个答案:

答案 0 :(得分:3)

它不太可能更快或更慢,但你可以通过避免eval(可以执行任意代码,这会产生重大的安全性和稳定性风险)来使其更加安全ast.literal_eval;它与eval类似,但仅适用于Python文字,而不是任意代码。您可能还可以使用json.loadjson.loads

,具体取决于格式

答案 1 :(得分:0)

你的dictionary.txt几乎是JSON,所以我会推荐这样的东西:

import json
with open('dictionary.txt') as data_file:
    data = data_file.read()
# Convert single quotes to double quotes to get JSON syntax
data = data.replace('\'', '"')
data = json.loads(data)
for key, val in data.iteritems():
    print "%s = %s" % (key, val)

对于dictionary.txt,此输出

YOL034W = 29
YAL008W = 25
...
YKL052C = 20

注意:省略号用于缩写输出。