将show命令的输出保存到网络设备时出现问题

2024-06-01 08:16:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过txt文件向路由器发送命令(显示1、显示2、显示3)。我的代码按预期将输出打印到控制台,但当我尝试将其保存到另一个txt文件时,它只保存“show3”命令的输出

================================================代码:

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()

Tags: 文件代码fromimport命令txtoutputnet
1条回答
网友
1楼 · 发布于 2024-06-01 08:16:10
  1. 迭代文件生成行。通过显式调用readline(),代码每隔一行跳过一行

    for lines in f:
        lines = f.readline()  # <  
        output = net_connect.send_command(lines)
    

    删除readline()调用

  2. 代码是在循环内部打开输出文件。它将覆盖现有文件。您应该打开输出文件一次


...
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

相关问题 更多 >