2017-07-26 45 views
0
import pexpect # importing the python-expect 
child = pexpect.spawn ('telnet x.x.x.x y') 
child.expect ('Hit \[Enter\] to boot immediately\, or space bar for command prompt.', 300) 
child.send ('\x20') 
if child.expect ('loader>' or 'OK ', 10): 
    child.sendline ('boot -s') 

我想在這裏做的是:Pexpect的期望不止一個模式

  • 自動化登錄到單用戶模式,通過解析引導順序的設備。
  • 通過控制檯端口使用終端服務器連接到設備。 $我使用pexpect作爲引導順序是單行輸出。
  • pexpect單獨爲'loader>'或'OK'工作&執行下一行但不在一起。

回答

0

按照manual

expect(pattern, timeout=-1, searchwindowsize=-1, async=False)

此舉旨在通過流直到一個模式匹配。該模式過載並可能需要幾個 類型。 該模式可以是StringType,EOF,編譯過的re或任何這些類型的列表。字符串將被編譯爲重新類型的 。 這將索引返回到模式列表。如果該模式不是列表,則返回 成功匹配時的索引0。
[...]