通过在python中读取属性文件来获取值的关键基础?

时间:2018-05-04 00:18:30

标签: python configparser

我有一个属性文件" holder.txt"像这样的key=value格式。此处的密钥为clientId,值为hostname

p10=machineA.abc.host.com
p11=machineB.pqr.host.com
p12=machineC.abc.host.com
p13=machineD.abc.host.com

现在我想在python中读取这个文件,并获得运行此python脚本的相应clientId。例如:如果python脚本在machineA.abc.host.com上运行,那么它应该p10clientId。与其他人相似。

import socket, ConfigParser

hostname=socket.getfqdn()
print(hostname)

# now basis on "hostname" figure out whats the clientId 
# by reading "holder.txt" file

现在我已经与ConfigParser合作了,但我的困惑是如何获得密钥值clientId基于它的主机名?我们可以在python中做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您需要将持有人文件作为字典读取并存储在内存中:

mappings = {}
with open('holder.txt', 'r') as f:
    for line in f:
        mapping = line.split('=')
        mappings[mapping[1].rstrip()] = mapping[0]

然后每次要从hostname获取clientId时执行映射:

import socket, ConfigParser

hostname=socket.getfqdn()
clientId = mappings[hostname]

希望有所帮助。