Я пытаюсь искать файлы для конкретного текста.Затем напечатайте строку непосредственно перед строкой и все последующие строки, начинающиеся с определенного символа, в частности «пробел».
Вот пример файла, который я пытаюсь прочитать:
interface vlan 22
ip address 10.10.2.1 255.255.255.0
ip helper-address 10.10.44.1
ip helper-address 10.10.44.2
!
interface vlan 23
ip address 10.10.23.1 255.255.255.0
ip helper-address 10.10.44.1
ip helper-address 10.10.44.2
!
Когда я вижу «IP-адрес», я хочу напечатать строку непосредственно перед этим, а затем все элементы конфигурации в этом интерфейсе.
В настоящее время я читаю из каталога файлов и выводуконкретная информация из файлов.Вот код:
for file in glob.glob('*.log'):
with open(file) as search:
with open(queryoutput,"a") as foutput:
for line in search:
line = line.rstrip()
if hostcheck in line:
hostentry = line.split("hostname ")[1]
foutput.write("Subnet information below is from " + hostentry + "\n")
elif ipaddress in line:
foutput.write("Local Device: " + hostentry + "\n")
foutput.write("Remote " + line + "\n")
Не все сетевые устройства будут указывать «интерфейс» в строке VLAN, поэтому я не хочу искать этот текст, и нет гарантии, что восклицательный знак будетпоследний пункт, хотя это весьма вероятно.Вот почему я ищу способ читать строки, основанные на «IP-адресе» и пробелах.
Я все еще новичок в Python и программировании в целом, но это выглядит как это может помочь.Я просто не до конца понимаю, как это будет работать.
Есть мысли о том, как мне это сделать?Также я пытаюсь использовать Python 3.x.