求助提示找不到文件,但看不出python问题在哪?

萨拉zanetti 2023-09-30 19:57:15

求助, 想要写一段代码,实现telnet 23.1.1.1设备后,执行show run命令,并把结果保存在test。txt文件中。  下面的代码提示找不到文件,百度也没找到解决办法

import telnetlib
host = "23.1.1.1"
user = "7604"
password = "ciscocisco"
tn = telnetlib.Telnet(host)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"enable\n")
tn.write(b"cisco\n")
tn.write(b"show run\n")
import subprocess
result = subprocess.run(['show', 'run'], capture_output=True, text=True)
result = tn.read_all().decode('ascii')
with open('session.txt', 'w') as f:
 f.write(result)

...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

代码中存在几个问题。首先,你想将结果保存在test.txt文件中,但实际上你在代码中使用了session.txt。其次,subprocess.run(['show', 'run']...)这行代码似乎是多余的,因为你已经通过telnet发送了show run命令。你应该删除这行代码,因为它会尝试在本地执行命令,而不是在远程设备上。正确的做法应该是仅依赖tn.write(b"show run\n")和result = tn.read_all().decode('ascii')来获取并保存结果

luj_1768 09-30
  • 打赏
  • 举报
回复

哈哈,没找到文件报错,应该是open语句的事。可能属性少了一个设置(控制打开方式的属性应该有一个代表“如果没找到文件就创建一个”的)。

10,887

社区成员

发帖
与我相关
我的任务
社区描述
创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践
python学习 企业社区
社区管理员
  • Python全栈技术社区
  • Lumos_zbj
  • 北侠大卫
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践

  • 这里有最新最全的 Python 学习内容及资源,每月多达4次技术公开课
  • 这里有众多 Python 学习者,陪伴你一起交流成长
  • 这里有专业 Python 社区专家、讲师,帮助你跨越学习瓶颈,解决实操难题
  • 这里有丰富的社区活动,可以开阔眼界,结识更多同伴

【最新活动】:

  1. 周四技术公开课讲师招募中,点击查看详情
  2. “Python 社区专家团” 招募中,点击查看详情

 

试试用AI创作助手写篇文章吧