Я использую сервер Rancid для сохранения информации о коммутаторах Cisco в сети. Я хотел бы написать сценарий Python 3, чтобы извлечь часть конфигурации данных в текстовый файл. Я получил это для работы, но у меня есть файл, который имеет конфигурацию в нем дважды, и мне нужен только первый конфиг.Сохраните одну часть текстового файла
Это то, что я сделал:
import sys
flag = False
start = ('version', 'config-register')
end = ('@\n', 'monitor 6\n', 'end\n')
with open(sys.arbv[1], "r") as file:
for line in file:
if line.startswith(start):
file = True;
if flag:
sys.stdout.write(line)
if line.endswith(end):
flag = False
файл, который имеет конфигурации он дважды использует 'version'
для начала и '@\n'
для конца. Я попытался использовать break
, но я все еще получаю обе конфигурации.
Пример файла: VTP: VTP доменное имя: VTP: VTP Режим Обрезка: Disabled (Оперативно Disabled) VTP: VTP режим V2: Disabled VTP: VTP Ловушки Generation: Disabled VTP : MD5 Дайджест: 0x05 0xBB 0x45 0x03 0x57 0xBE 0xBA 0x57 ! VTP: версия VTP работает: 1 ! ! DEBUG: Уровень отладки установлен на Незначительный (1) ! DEBUG: по умолчанию для новых уровней регистрации сеансов: 3 ! ! CORES: Module Instance Имя процесса Дата PID (год-месяц-время) ! CORES: ------ -------- ------------- - -------- ------------------------- ! ! PROC_LOGS: Process PID Normal-exit Stack Core Log-create-time ! PROC_LOGS: --------------- ------ --------- - ----- ----- --------------- !
version 5.2(1)N1(4)
logging level feature-mgr 0
hostname
no feature telnet
feature tacacs+
cfs eth distribute
feature udld
feature interface-vlan
feature lacp
feature vpc
feature lldp
feature vtp
feature fex
username (removed)
**** content removed ****
Interface Section
clock timezone CTD -6 0
line console
exec-timeout 5
line vty
session-limit 5
session-limit 5
exec-timeout 5
access-class 3 in
boot kickstart
boot system
ip route
no ip source-route
@
1.75
log
@updates
@
text
Добавить фактический контент, начало и конец не имеют смысла, как раздел может начинаться с двух разных строк и заканчиваться тремя разными строками? –
У меня есть три разных типа переключателей, два файла имеют строку «config-register», а третий файл имеет строку «version». И каждый файл имеет отдельную строку, где заканчивается конфиг. Стартовая переменная - это то, где я запускаю программу и останавливаюсь у конечной переменной. – Kobra
Если вы предоставите образец, вам будет намного легче помочь –