我有一个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())
这将它输入为字典,但我想知道是否有更快的方法。
答案 0 :(得分:3)
它不太可能更快或更慢,但你可以通过避免eval
(可以执行任意代码,这会产生重大的安全性和稳定性风险)来使其更加安全ast.literal_eval
;它与eval
类似,但仅适用于Python文字,而不是任意代码。您可能还可以使用json.load
或json.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
注意:省略号用于缩写输出。