3 回答
TA贡献2036条经验 获得超8个赞
看来你有点快了。我建议先尝试一个中间步骤:
vlanArray = text.split(",")
for txt in vlanArray:
print(txt)
这应该为您提供下一步要采取的步骤的方向。
TA贡献2041条经验 获得超4个赞
您可以使用正则表达式来提取您需要的信息:
s = """Vlan101, Interface status: protocol-up/link-up/admin-up, iod: 257,
IP address: 1.1.1.1, IP subnet: 1.1.1.0/24
IP broadcast address: 255.255.255.255"""
import re
m = re.match(r'^([\d\w]+)(.*)(IP subnet: )([0-9./]+)', s, re.DOTALL | re.S | re.MULTILINE )
result = m.groups()
print (result[0], result[-1])
返回:
Vlan101 1.1.1.0/24
TA贡献1909条经验 获得超7个赞
不需要对相同文本进行 2 次或更多次拆分。试试下面:
对文本进行拆分并存储在数组中
通过数组运行循环
检查阵列项是否包含 Vlan 或 IP 子网
如果为真,则追加输出变量
像下面这样:
vlanArray = text.split(",")
outTxt = []
for subTxt in vlanArray:
if 'Vlan' in subTxt:
outTxt.append(subTxt)
if 'IP subnet' in subTxt:
ipAddress = subTxt.split(":")
lenipAdd = len(ipAddress)
outTxt.append(ipAddress[lenipAdd-1].strip())
outTxt = ','.join(outTxt)
添加回答
举报