Im делает проект, который должен собирать определенную информацию с нескольких коммутаторов. Имейте в виду im new для python и программирования. Что я хочу сделать, это: иметь .txt-файл с именами моих переключателей.
Затем пройдите через этот список и выполните несколько команд и сохраните вывод.Python 3, telnet automation
До сих пор у меня есть следующее, которое работает на одном коммутаторе. Как вы можете видеть в комментариях, я пытаюсь открыть свой файл list.txt и пропустить его, но моя программа не работает из-за того, что она находится в списке (вывод: ['switchname-1']) Как читать мой список .txt и получить переменную как обычный текст, например. switchchname-1 без всех символов списка?
import sys
import telnetlib
import time
password = "password"
command = "show interface status"
##with open ("list.txt", "r") as devicelist:
## hostlist = []
## hostlist=devicelist.readlines()
## print(hostlist)
hostlist= [ ("switchname-1","",""),]
for host in hostlist:
cmd1 = "enable"
tn = telnetlib.Telnet(host[0])
time.sleep(2)
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
time.sleep(2)
tn.write(cmd1.encode('ascii') + b"\n")
time.sleep(2)
tn.write(password.encode('ascii') + b"\n")
time.sleep(2)
tn.write(command.encode('ascii') + b"\n")
time.sleep(2)
tn.write(b"\n")
time.sleep(2)
tn.write(b"\n")
time.sleep(2)
tn.write(b"exit\n")
lastpost = tn.read_all().decode('ascii')
op=open ("output.txt", "w")
op.write(lastpost)
print("writing to file")
op.close()
print(lastpost)
tn.close()
Я также пытаюсь выяснить, есть ли какое-то способ печатать только последний выход из переключателей вместо lastpost = tn.read_all().decode('ascii')
, каких постов всей сессии телнета?
делает Т.Н. возвращение \ п текст с разделителями? если это так, используйте tn.split ("\ n") [- 1], чтобы получить последнюю строку. Извините, я пропустил эту часть в своем ответе –