ここでこの質問を見つけることができなかったことに驚きました。
telnet 応答から 1 行を抽出して変数にしたいと思います。(実際にはその行の 1 つの数字)。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