【发布时间】:2014-12-05 17:19:55
【问题描述】:
我确定这很简单,但我不擅长正则表达式或字符串操作,我想学习 :)
我有一个使用 simpy 得到的字符串的输出。它看起来像这样:
ARRIS DOCSIS 3.0 Touchstone WideBand Cable Modem <<HW_REV: 1; VENDOR: Arris Interactive, L.L.C.; BOOTR: 1.2.1.62; SW_REV: 7.3.123; MODEL: CM820A>>
我希望能够查看该字符串并在 if 中使用该信息,然后打印一些内容。我想查看型号是否为 CM820A,然后检查固件版本 SW_REV,如果它不是正确的版本,我想打印版本,否则我继续从循环中获取下一个字符串。
host.sysDescr 它返回上面的字符串。到目前为止,我知道如何找到所有 CM820A,但是当我尝试验证固件版本时,我变得草率。
sysdesc = host.sysDescr
if "CM820A" in str(sysdesc):
if "7.5.125" not in str(sysdesc):
print("Modem CM820A " + modem + " at version " + version)
print(" Sysdesc = " + sysdesc)
if "7.5.125" in sysdesc:
print ("Modem CM820A " + modem + " up to date")
现在我可以轻松查看 CM820A 是否有正确的版本,但我不能只打印坏调制解调器的版本。我只能打印包含大量无用信息的整个字符串。我只想打印该字符串 SW_REV 值。
问题
我需要有关如何做到这一点的帮助,然后我会更好地理解并能够重写我目前仅用于学习 Python 但我想将其付诸实践以用于有用的目的。
【问题讨论】:
-
而不是
if "7.5.125" in sysdesc:使用else子句。 -
如果不是这样,能否给出当前输入输出和预期输出?