为了账号安全,请及时绑定邮箱和手机立即绑定

被 Python 中的 read_all() 函数困住了?

被 Python 中的 read_all() 函数困住了?

扬帆大鱼 2021-10-10 14:32:41
我在 python 中编写了一个小代码,使用 telnet 库在多个 Cisco 路由器上自动执行配置任务。在第一次迭代中一切正常,问题是我在函数 read_all() 的第二次迭代中超时。如果我从 telnetlib.Telnet() 函数中删除超时参数,我将永远停留在同一次迭代中。from telnet import telnetimport xlrdclass handler: excel_sheet=None ipv4_devices=None ipv6_devices=None config=None telnet=Nonedef __init__(self): self.excel_sheet = xlrd.open_workbook("ipv4_devices.xlsx") self.config=open("config.txt","r") output_init = open("output.txt","w+") output_init.write("") output_init.close()  def execute(self): row = None column = None self.ipv4_devices = self.excel_sheet.sheet_by_index(0) for row in range(self.ipv4_devices.nrows-1):  self.telnet = telnet(self.ipv4_devices.cell_value(row+1,0),self.ipv4_devices.cell_value(row+1,1), self.ipv4_devices.cell_value(row+1,2), self.ipv4_devices.cell_value(row+1,3), self.config) self.telnet.do_telnet() self.telnet=Noneself.config.close()上面是我的 Handler.py 文件,它依次调用包含实际 telnet 代码的 telnet.py 文件。import sysimport telnetlibclass telnet: ipv4_address=None port=0 username=None  passphrase=None config=None def __init__(self, ipv4_address=None, port=23, username=None, passphrase=None, config=None):  if (ipv4_address is not None) and (username is not None) and (passphrase is not None) and (config is not None) :    self.ipv4_address = ipv4_address   self.port = port   self.username = username   self.passphrase = passphrase   self.config = config  else:   exit()   def do_telnet(self):  output = open("output.txt","a")  remote= telnetlib.Telnet(self.ipv4_address,int(self.port))  remote.read_until("Username: ")  remote.write(self.username.encode('ascii')+"\n")  remote.read_until("Password: ")  remote.write(self.passphrase.encode('ascii')+"\n")  remote.write(self.config.read().encode('ascii')+"\n")  output.write(remote.read_all()+"\n"+"  -------  "+"\n")  remote.close()  output.close()
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 385 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号