我很惊讶我在这里找不到这个问题。
我想从 telnet 响应中提取一行并将其设为变量。(实际上是该行的一个数字)。我可以使用 telnet.read_until() 提取到我需要的地方,但整个开头仍然存在。打印输出显示机器的不同状态。
我试图得到的行格式如下:
CPU Utilization : 5 %
我真的只需要数字,但输出的其余部分中有很多 ':' 和 '%' 字符。谁能帮我提取这个值?提前致谢!
这是我的代码(这会读取整个输出并打印):
import telnetlib, time
print ("Starting Client...")
host = input("Enter IP Address: ")
timeout = 120
print ("Connecting...")
try:
session = telnetlib.Telnet(host, 23, timeout)
except socket.timeout:
print ("socket timeout")
else:
print("Sending Commands...")
session.write("command".encode('ascii') + b"\r")
print("Reading...")
output = session.read_until(b"/r/n/r/n#>", timeout )
session.close()
print(output)
print("Done")
编辑:输出可能是什么的一些例子:
Boot Version : 1.1.3 (release_82001975_C)
Post Version : 1.1.3 (release_82001753_E)
Product VPD Version : release_82001754_C
Product ID : 0x0076
Hardware Strapping : 0x004C
CPU Utilization : 5 %
Uptime : 185 days, 20 hours, 31 minutes, 29 seconds
Current Date/Time : Fri Apr 26 17:50:30 2013