Wie kann ich das Lesen einer Zeile aus eine telnet-Antwort mit Python?

War ich überrascht, dass ich nicht finden konnte, diese Frage hier.

Ich würde gerne nehmen, extrahieren Sie eine Zeile aus eine telnet-Antwort und machen es zu einem Variablen. (eigentlich eine Zahl aus der Zeile). Ich kann Sie extrahieren, bis zu, wo ich noch über telnet.read_until(), aber der ganze Anfang ist immer noch da. Der Ausdruck zeigt die verschiedenen Zustände einer Maschine.

Die Linie, die ich versuche zu bekommen ist wie folgt formatiert:

CPU Utilization          : 5 %

Ich muss echt nur die Anzahl, aber es gibt viele ':' und '%' Zeichen in den rest der Ausgabe. Kann mir jemand helfen, extrahieren Sie das Wert? Vielen Dank im Voraus!

Hier ist mein code (dieser liest die gesamte Ausgabe und Drucke):

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")

Edit: einige Beispiel dafür, was eine Ausgabe könnte sein:

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
Sie sagte, es gibt viele : und %, bitte zeigen Sie uns einige weitere Beispiel-Ausgabe-Zeilen, so können wir Ihnen besser Antworten
Hinzugefügt und Bearbeiten von Linien

InformationsquelleAutor mad5245 | 2013-04-26

Schreibe einen Kommentar