У меня в папке есть несколько файлов конфигурации Cisco. Я написал цикл for для перебора каждого файла конфигурации и поиска портов vlan1 следующим образом. Я проверяю разрешения и безопасность для папки, файлы для всех файлов конфигурации, и они одинаковы. По иронии судьбы, CiscoConfParse может открывать, читать и выдавать результаты для некоторых файлов конфигурации, но не для других. если я удалил файл конфигурации, который он не может открыть, результат был ожидаемым. Когда я поместил этот файл конфигурации обратно в ту же папку, он не смог открыться и выдал ошибку [FATAL] filenotfound. Я исследовал Интернет и нашел несколько предлагаемых решений, таких как выполнение chkdsk /f /r, а затем sfc /scannow для сканирования и восстановления поврежденных файлов. Я все это сделал, но проблема все еще остается. Я надеюсь, что кто-то уже решил эту проблему раньше и помог. Спасибо
import os
import re
import csv
from ciscoconfparse import CiscoConfParse
def check_vlan1_ports():
configs = (r'C:\Documents\Tutorials\Python\Scripts\NetworkAudit\Data')
with open (r'c:\documents\result.csv', 'a', newline='') as csv_file:
Header = ['Device', 'Rule', 'Exception', 'Status', 'Code', 'Severity', 'Reason']
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writeheader()
for config in os.listdir(configs):
if config.endswith(".txt"):
filename = os.path.split(config)
#print(filename[1])
parse = CiscoConfParse(config)
vlan1 = parse.find_objects(r"^1\s+default.*")
str_vlan1 = str(vlan1)
#print(filename, vlan1)
vlan1_ports = re.findall(r'(Gi\d{1,3}\/\d{1,3})|(Fa\d{1,3}\/\d{1,3})', str_vlan1)
if (vlan1_ports):
with open (r'c:\documents\result.csv', 'a', newline='') as \
csv_file:
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writerow({'Device':filename[1], 'Rule': 1, 'Exception': \
'Check Vlan1 ports', \
'Status': 'Failed', 'Code': '1', 'Severity': 'High', \
'Reason': vlan1_ports})
else:
with open (r'c:\documents\result.csv', 'a', newline='') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writerow({'Device':filename[1], 'Rule': 1, 'Exception': \
Check Vlan1 ports', \
'Status': 'Pass', 'Code': '1', 'Severity': 'High', \
'Reason': 'No ports in vlan1'})
check_vlan1_ports()
Подробнее здесь: https://stackoverflow.com/questions/693 ... x-txt-file
FATAL CiscoConfParse не удалось открыть файл xxx.xxx.xxx.xxx.txt ⇐ Python
Программы на Python
-
Anonymous
1771031358
Anonymous
У меня в папке есть несколько файлов конфигурации Cisco. Я написал цикл for для перебора каждого файла конфигурации и поиска портов vlan1 следующим образом. Я проверяю разрешения и безопасность для папки, файлы для всех файлов конфигурации, и они одинаковы. По иронии судьбы, CiscoConfParse может открывать, читать и выдавать результаты для некоторых файлов конфигурации, но не для других. если я удалил файл конфигурации, который он не может открыть, результат был ожидаемым. Когда я поместил этот файл конфигурации обратно в ту же папку, он не смог открыться и выдал ошибку [FATAL] filenotfound. Я исследовал Интернет и нашел несколько предлагаемых решений, таких как выполнение chkdsk /f /r, а затем sfc /scannow для сканирования и восстановления поврежденных файлов. Я все это сделал, но проблема все еще остается. Я надеюсь, что кто-то уже решил эту проблему раньше и помог. Спасибо
import os
import re
import csv
from ciscoconfparse import CiscoConfParse
def check_vlan1_ports():
configs = (r'C:\Documents\Tutorials\Python\Scripts\NetworkAudit\Data')
with open (r'c:\documents\result.csv', 'a', newline='') as csv_file:
Header = ['Device', 'Rule', 'Exception', 'Status', 'Code', 'Severity', 'Reason']
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writeheader()
for config in os.listdir(configs):
if config.endswith(".txt"):
filename = os.path.split(config)
#print(filename[1])
parse = CiscoConfParse(config)
vlan1 = parse.find_objects(r"^1\s+default.*")
str_vlan1 = str(vlan1)
#print(filename, vlan1)
vlan1_ports = re.findall(r'(Gi\d{1,3}\/\d{1,3})|(Fa\d{1,3}\/\d{1,3})', str_vlan1)
if (vlan1_ports):
with open (r'c:\documents\result.csv', 'a', newline='') as \
csv_file:
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writerow({'Device':filename[1], 'Rule': 1, 'Exception': \
'Check Vlan1 ports', \
'Status': 'Failed', 'Code': '1', 'Severity': 'High', \
'Reason': vlan1_ports})
else:
with open (r'c:\documents\result.csv', 'a', newline='') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=Header)
writer.writerow({'Device':filename[1], 'Rule': 1, 'Exception': \
Check Vlan1 ports', \
'Status': 'Pass', 'Code': '1', 'Severity': 'High', \
'Reason': 'No ports in vlan1'})
check_vlan1_ports()
Подробнее здесь: [url]https://stackoverflow.com/questions/69350838/fatal-ciscoconfparse-could-not-open-xxx-xxx-xxx-xxx-txt-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия