Это мой список примеров для вас, который хранится в текстовом файле:
DEVICE: Test
HW-RELEASE: Test
SERIAL-NUMBER: Test
MAC-ADDRESS: Test
IP-ADDRESS: Test
IP-NETMASK: Test
INTRANET-ADDRESS: Test
INTRANETMASK: Test
VERSION: Test
NAME: Test
CONFIG-STATUS: Test
FIRMWARE-STATUS: Test
HW-MASK: Test
FEATUREWORD: Test
REGISTERED-WORD: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
FEATURE-LIST: Test
TIME: Test
HTTP-PORT: Test
HTTPS-PORT: Test
TELNET-PORT: Test
TELNET-SSL-PORT: Test
SSH-PORT: Test
SNMP-PORT: Test
TFTP-PORT: Test
LOCATION: Test
COUNTRY-CODE: Test
COMMENT: Test
MYVPN: Test
MYVPN-HOSTNAME: Test
EXTENDED-NAME: Test
Поэтому я хочу вывести данные за двоеточием, но всегда только одну строку.Я хочу определить эту строку с помощью словаря в сценарии, чтобы я мог, например, ввести только «Устройство», и оно дает мне имя после двоеточия, чтобы имена перед двоеточием действовали как ключ.Поскольку я делаю целое вместо этого, я только приблизительно знаю, что я придумал до сих пор.К сожалению, этот код не работает так, как мне хотелось бы:
data = {}
with open('C:/example/example/example/example/example.txt') as fh:
for line in fh:
key, value = line.strip().split(':', 1)
data[key] = value
for x in data:
print(x)
Вывод этого кода:
ValueError: недостаточно значений для распаковки (ожидается 2, получено 1)
Что я ожидаю, так это то, что когда я различаю что-то вроде:
x = data ["DEVICE"], оно должно вывести свое значение, которое безусловно "Test"