Skip to main content
 首页 » 编程设计

python之如何让 Python 代码在 telnet (telnetlib) 超时后继续

2025年05月04日20cmt

我将 Python 用于使用 telnetlib 的自动化 telnet 程序。问题是:当我尝试远程登录的设备没有响应时,意味着超时;该程序给我超时消息,并且不会继续执行下一个命令。

我的代码:

import telnetlib   
HOST = ("x.x.x.x")   
USER = ("xxxxx")   
PWD = ("yyyyy")   
ENABLE = ("zzzzz")   
TNT = telnetlib.Telnet(HOST, 23, 5)                     
TNT.read_until(b"Username:")   
TNT.write(USER.encode('ascii') + b"\n")   
TNT.read_until(b"Password:")   
TNT.write(PWD.encode('ascii') + b"\n")   
TNT.write(b"enable\n")   
TNT.read_until(b"Password:")   
TNT.write(ENABLE.encode('ascii') + b"\n")   
TNT.write(b"terminal length 0\n")   
TNT.write(b"show run\n")   
TNT.write(b"exit\n")   
print (TNT.read_all().decode('ascii'))   
TNT.close()   
raw_input ("Press any Key to Quit: ")   

错误信息:

Traceback (most recent call last):   
  File "D:\Python\Telnet (Python 2.7) V1.5.py", line 8, in <module>   
    TNT = telnetlib.Telnet(HOST, 23, 5)   
  File "C:\Python27\lib\telnetlib.py", line 209, in __init__   
    self.open(host, port, timeout)   
  File "C:\Python27\lib\telnetlib.py", line 225, in open   
    self.sock = socket.create_connection((host, port), timeout)   
  File "C:\Python27\lib\socket.py", line 571, in create_connection   
    raise err   
timeout: timed out   
>>>  

如何让程序只通知我无法访问此设备并让它继续执行下一个命令??

请您参考如下方法:

将操作包装在 try block 中,并在 catch block 中处理异常。