这是我为您提供的示例列表,它存储在一个文本文件中:
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: not enough values to unpack (expected 2, got 1)
我期望的是当我定义如下内容时:
x = data["DEVICE"]
它应该输出它的值,显然是“测试”
请您参考如下方法:
首先,您可以尝试打印行中的内容吗?
如果符合预期(即包含 DEVICE: Test),请确保按如下方式正确处理空格。
for line in fh:
if line.strip(): # Ignore blank lines
key, value = [x.strip() for x in line.strip().split(':', 1)]
...
