python - 将 show 命令的输出保存到网络设备时出现问题
问题描述
我正在通过 txt 文件(显示 1、显示 2、显示 3)向路由器发送命令。我的代码按预期将输出打印到控制台,但是当我尝试将其保存到另一个 txt 文件时,它只会保存“show 3”命令的输出
=====================代码:================
from netmiko import Netmiko
from getpass import getpass
cisco1 = {
"host" :"192.168.100.1",
"username" : "XXXXX",
"password": "XXXXX",
"device_type" : "cisco_ios",
}
net_connect = Netmiko(**cisco1)
print(net_connect.find_prompt())
with open("conf.txt", "r") as f:
for lines in f:
lines = f.readline()
output = net_connect.send_command(lines)
with open("cmdoutput.txt", "w") as nf:
nf.write(output)
print(output)
net_connect.disconnect()
解决方案
迭代文件产量线。通过显式调用
readline()
,代码将跳过每隔一行。for lines in f: lines = f.readline() # <---- output = net_connect.send_command(lines)
删除
readline()
呼叫。该代码是循环内的打开输出文件。它将覆盖现有文件。您应该打开一次输出文件。
...
with open("conf.txt", "r") as f, open("cmdoutput.txt", "w") as nf:
for line in f:
output = net_connect.send_command(line)
nf.write(output)
...
顺便说一句,lines
应该是line
。
推荐阅读
- android - Build.Gradle (Module App) 被转换为自动生成的文件
- javascript - ReactJS 中的路由。显示 URL 但未呈现组件
- windev - Windev:数据库中的“空”值
- javascript - 如何将列表添加到 Immutable.js 中的列表?
- python - 如何使用我想要的代码对分类列进行编码?
- java - 如何在添加到android中的recyclerView适配器之前反转列表
- jsf - 投票完成后primefaces重置页面
- function - IDL 函数不愿定义
- php - Laravel 下一个和上一个分页帖子
- php - 在 PHP 7 的 foreach 中通过引用传递值对性能真的有用吗