Python - 如果字典键是行打印值

时间:2017-06-19 14:21:41

标签: python list dictionary replace

我试图检查在我的一个文件的行中是否有字典的键,如果是这种情况,我想用他们尊重的值替换它们。 这是我的代码:

import sys
file1 = sys.argv[1]
dictionary = {key1 : value1 , key2 : value2 , ecc...}

with open (file) as f:
    for line in f:
        if any(e in line for e in dictionary.keys()):
            print(line.replace(e,dictionary[e]))

1 个答案:

答案 0 :(得分:2)

看起来你正在尝试做的事情是这样的:

with open(file) as f:
    for line in f:
        for k,v in dictionary.items():
            line = line.replace(k, v)
        print(line)

即,对于字典中的每个键/值,将该键的行出现替换为关联值。

或者,您可以一次性阅读整个文件,只需在整个文件中运行替换:

with open(file) as f:
    data = f.read()
for k,v in dictionary.items():
    data = data.replace(k, v)
print(data)

如果您使用的是Python 2,则应使用.iteritems()代替.items()