проблема с сохранением вывода команд show на сетевое устройство - PullRequest
0 голосов
/ 06 марта 2020

Я посылаю команды на маршрутизатор через txt файл (показать 1, показать 2, показать 3). Мой код выводит вывод на консоль, как и ожидалось, однако, когда я пытаюсь сохранить его в другом текстовом файле, он просто сохраняет вывод команды «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()

1 Ответ

0 голосов
/ 06 марта 2020
  1. Перебор строк доходности файла. При явном вызове readline() код пропускает все остальные строки.

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

    Удаляет вызовы readline().

  2. Код является открытым выходным файлом внутри л oop. Это перезапишет существующий файл. Вы должны открыть выходной файл один раз.


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...