我一直是一個潛伏者,並且已經從我們的網站了解到了幾乎所有我知道的東西。不過,我遇到了一個我一直未能找到解決方案的問題。我正嘗試SSH到思科設備並提取信息。我正在運行'sho接口狀態',它會給出以下輸出:Python - 嘗試在SSH中計算字符串的實例std.out
Port Name Status Vlan Duplex Speed Type
Fa0 connected 1 a-full a-100 10/100BaseTX
Fa1 notconnect 1 auto auto 10/100BaseTX
Fa2 connected 1 a-full a-100 10/100BaseTX
Fa3 notconnect 313 auto auto 10/100BaseTX
Fa4 notconnect 1 auto auto 10/100BaseTX
Fa5 notconnect 1 auto auto 10/100BaseTX
Fa6 connected 1 a-full a-100 10/100BaseTX
Fa7 connected 1 a-full a-100 10/100BaseTX"
我想計算有多少行包含文本'notconnect'。我曾嘗試很多不同的方式,我要麼得到和235一樣任意數量或我得到0。下面是我想做一個例子,當我得到奇異數:
stdin, stdout, stderr = dssh.exec_command('show interface status')
response1 = stdout.read()
if 'notconnect' in response1:
EMPTY_PORT = 0
for line in response1:
if line.strip() and line[0]!='connected':
這是我曾嘗試時我得到0的回覆:
stdin, stdout, stderr = dssh.exec_command('sho int status')
response = stdout.read()
if 'notconnect' in response:
data = stdout.read()
count = data.count('not')
EMPTY_PORT = count
for line in response:
count = count + line.count("not")
我真的希望你們(和加爾斯)能夠幫助引導我走向正確的方向。我一直在研究這段相同的劇本近6個小時。我知道我在這裏錯過了一些東西。
剩下的我唯一能想到的就是EMPTY_PORT是我用來捕獲計數的。
業務的第一階段:將程序分成邏輯分組部分。解析'show interface status'的輸出將是一個。將你在問題中提供的示例輸出複製到一個文本文件中,並使用你的解析函數。那樣有用嗎? –
沿着同樣的路線,將通過SSH執行命令的代碼與其他代碼分開。然後分別測試這些代碼,確保您可以發佈「show interface status」並獲得您期望的原始結果。 –
我唯一遇到的問題就是點數。我可以發出命令並獲得所需的響應。我只是不能像我想要的那樣。 –