получить ключ на основе значения путем чтения файла свойств в Python? - PullRequest
0 голосов
/ 04 мая 2018

У меня есть файл свойств "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 и получить соответствующий clientId, где работает этот скрипт на python. Например: если скрипт Python работает на machineA.abc.host.com, он должен дать мне p10 как clientId. Точно так же и для других.

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 голосов
/ 04 мая 2018

Вам необходимо прочитать и сохранить файл держателя в памяти в виде словаря:

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

Затем выполняйте сопоставление каждый раз, когда вы хотите получить clientId от имени хоста:

import socket, ConfigParser

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

Надеюсь, это поможет.

...