Python dic替换不起作用

时间:2018-08-24 03:03:53

标签: python dictionary replace

对于多字符串替换,我有代码

import ast
def replace_all(text, dic):
    for i, j in dic.iteritems():
        text = text.replace(i, j)
    return text 

my_text = open('p.txt', 'r').read()
reps2 = open('dic.txt', 'r').read()
reps3 = ast.literal_eval(reps2)  
txt = replace_all(my_text, reps3)
print txt

但是,价值转换的关键很少。我是python的新手,请提出问题所在。 dic.txt具有30000个键值对。

p.txt文件内容就像

OS11T0116000
OS01T0331100

OS11T0116000
OS03T0663800

OS11T0116000
OS05T0189904

OS11T0116000
OS08T0528500

dic.txt文件的内容就像

{'Os01T0101800':'LOC_Os01g01170',
 'Os01T0101900':'LOC_Os01g01180',
 'Os01T0102000':'LOC_Os01g01190',
 'Os01T0102300':'LOC_Os01g01280',
 'Os01T0102400':'LOC_Os01g01290',
 'Os01T0102500':'LOC_Os01g01295'}

1 个答案:

答案 0 :(得分:2)

您的原始文本为大写,但字典中的's'为小写。 'S''s'是两个不同的字母。将大写字母的键添加到字典中:

reps3.update({k.upper(): v for k, v in reps3.items()})