Как передать скрипту аргументы из тхт
пишу скрипт на питоне в котором необходимо по очереди подключаться к разным коммутаторам из списка в тхт файле.В этом файле содержаться только ip адреса подключений ,а я хочу добавить в него логины и пароли от цисок,чтобы скрипт сразу конектился без участия пользователя.Пример строки в тхт файле-
192.168.1.2 : логинциски : парольциски : энейблпароль :портподключения
Вопрос в том как это реализовать.
import sys
import time
from netmiko import ConnectHandler
import os
import cmd
import datetime
import re
import shutil
now = datetime.datetime.now()
device_params={}
with open('ip2.txt', 'r') as f:
nums = f.read().splitlines()
for el in nums:
if el:
ip, user, password, enable_password, port, = el.replace(' ', '').split(":")
device_params = {
'device_type': 'cisco_ios_telnet',
'ip': ip,
'username': user,
'password': password,
'secret': enable_password,
'port': port
}
print(device_params)
try:
connection = ConnectHandler(**device_params)
connection.enable()
output = connection.send_command('show run')
prompt = connection.find_prompt()
hostname = prompt[:-1]
path = 'C:/adb/'
folder_names = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
def createFolderForTiff(folder_names, path):
_fold_name = folder_names
_path = path
if (os.path.exists(_path + '/' + _fold_name)):
print('Папка с именем ' + folder_names + ' уже существует')
else:
os.chdir(_path)
os.mkdir(_fold_name)
createFolderForTiff(folder_names, path)
today = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
file = today + '-' + hostname + '.txt'
with open(path + folder_names + '/' + file, 'w') as backup:
backup.write(output)
print('Backup of ' + hostname + ' completed successfuly')
print('#' * 30)
connection.disconnect()
except ():
device_type=device_params.setdefault('device_type','cisco_ios')
connection = ConnectHandler(**device_params)
connection.enable()
output = connection.send_command('show run')
prompt = connection.find_prompt()
hostname = prompt[:-1]
path = 'C:/adb/'
folder_names = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
def createFolderForTiff(folder_names, path):
_fold_name = folder_names
_path = path
if (os.path.exists(_path + '/' + _fold_name)):
print('Папка с именем ' + folder_names + ' уже существует')
else:
os.chdir(_path)
os.mkdir(_fold_name)
createFolderForTiff(folder_names, path)
today = str(now.year) + '-' + str(now.month) + '-' + str(now.day)
file = today + '-' + hostname + '.txt'
with open (path+folder_names+'/'+file, 'w') as backup:
backup.write(output)
print('Backup of ' + hostname + ' completed successfuly')
print('#' *30)
connection.disconnect()
Ответы (1 шт):
Автор решения: Vadim.Sharoikin
→ Ссылка
Если трудности именно с тем что не знаете как получить параметры из текстового файла
device_params={}
with open('text.txt', 'r') as f:
nums = f.read().splitlines()
for el in nums:
if el:
ip, user, password, enable_password, port, = el.replace(' ', '').split(":")
device_params = {
'device_type': 'cisco_ios',
'ip': ip,
'username': user,
'password': password,
'secret': enable_password,
'port': port
}
print(device_params)
в итоге получаем вывод
подключение к ip
192.168.1.2
вводим логин
admin
подключение к ip
192.168.1.3
вводим логин
admin
подключение к ip
192.168.1.4
вводим логин
admin
подключение к ip
192.168.1.5
вводим логин
admin