我正在写一些pexpect的东西,这些东西基本上是通过telnet发送命令的.但是,我的telnet会话可能会死掉(由于网络问题,电缆被拔出等等).我该如何初始化telnet会话,以便它死亡时可以捕获并告诉它重新连接,然后继续执行其...

我正在写一些pexpect的东西,这些东西基本上是通过telnet发送命令的.
但是,我的telnet会话可能会死掉(由于网络问题,电缆被拔出等等).
我该如何初始化telnet会话,以便它死亡时可以捕获并告诉它重新连接,然后继续执行其所在的代码.
这可能吗?
解决方法:
恕我直言,使用当前维护的库(例如exscript或telnetlib)通常会更好,但是有效的方法是:
import pexpect as px
cmds = ['cmd1', 'cmd2', 'cmd3']
retcode = -1
while (retcode<10):
if (retcode<2):
child = px.spawn('telnet %s %s' % (ip_addr,port))
lregex = '(sername:)' # Insert regex for login prompt here
pregex = '(prompt1>)|(prompt2$)' # Insert your prompt regex here
# retcode = 0 for px.TIMEOUT, 1 for px.EOF, 2 for lregex match...
retcode = child.expect([px.TIMEOUT, px.EOF, lregex, pregex],timeout = 10)
if (retcode==2):
do_login(child) # Build a do_login() method to send user / passwd
elif (2<retcode<10) and (len(cmds)>0):
cmd = cmds.pop(0)
child.sendline(cmd)
else:
retcode = 10
沃梦达教程
本文标题为:python-在pexpect中捕获即将死去的进程


基础教程推荐
猜你喜欢
- Python变量内存管理 2023-11-11
- Windows在python 2.3上执行Windows程序的最佳方法是什么,例如在路径中带有多个参数和空格的ghostscript? 2023-11-13
- Python pygame 项目实战事件监听 2022-08-30
- MySQL数据优化-多层索引 2023-08-11
- python学习-linux基本操作 2023-09-04
- Matplotlib学习笔记之plt.xticks()用法 2022-10-20
- python中playwright结合pytest执行用例的实现 2023-08-04
- jupyter notebook添加python内核(windows) 2023-09-03
- Python-内存泄漏 持续增长 检查点 2023-11-12
- 亲手教你用Python打造一款摸鱼倒计时界面 2023-08-08