我有以下字符串;
PID: N9K-C92160YC-X , VID: V01 , SN: FDO211410AK
我正在尝试打印两个部分,第一个是“ N9K-C92160YC-X”,第二个是“ FDO211410AK”
我已经设法通过此操作获得了PID;
modeltype = net_connect.send_command('sh inv | i Chassis next 1 | i PID').split(" ")[0]]
print(modeltype)
这给了我
PID: N9K-C92160YC-X
我不知道如何拆分和保留SN;
serialnumber = net_connect.send_command('sh inv | i Chassis next 1 | i PID').split("SN:")[0]
print(serialnumber)
输出:
PID: N9K-C92160YC-X , VID: V01 ,
答案 0 :(得分:3)
在空白处分割,然后访问结果数组中的第二个和最后一个元素:
str = "PID: N9K-C92160YC-X , VID: V01 , SN: FDO211410AK"
parts = re.split(r'\s+', str)
print(parts[1])
print(parts[-1])
此打印:
N9K-C92160YC-X
FDO211410AK
答案 1 :(得分:0)
似乎您的文本结构合理,因此使用适当的名称会很有用:
def parts(s, separator):
return [e.strip() for e in s.split(separator)]
s = "PID: N9K-C92160YC-X , VID: V01 , SN: FDO211410AK"
pid, vid, sn = parts(s, ",")
pid_key, pid_value = parts(pid, ":")
sn_key, sn_value = parts(sn, ":")
答案 2 :(得分:0)
只需在空间上分割它并去除多余的空间即可。
text = "PID: N9K-C92160YC-X , VID: V01 , SN: FDO211410AK"
parts = [txt.strip() for txt in text.split()]
print(parts[1], parts[-1])
答案 3 :(得分:0)
如果字符串(PID,VID,SN或其他)中没有包含哪些条目的独特格式,则应使用正则表达式提取所需的信息:
import re
str = "PID: N9K-C92160YC-X , VID: V01 , SN: FDO211410AK"
pid = re.search(r"PID: ([a-zA-Z0-9-]+)", str).group(1)
print(pid)
# N9K-C92160YC-X
sn = re.search(r"SN: ([a-zA-Z0-9-]+)", str).group(1)
print(sn)
# FDO211410AK