Skip to main content
 首页 » 编程设计

python之打开文本文件并在 Python 中获取冒号后面的数据

2025年05月04日15mfryf

这是我为您提供的示例列表,它存储在一个文本文件中:

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)] 
        ...