Форум сайта python.su
0
py.user.nextСпасибо за пример. вот мое хреновое решение:
ospf_route = "O 10.0.24.0/24 [110/41] via 10.0.13.3, 3d18h, FastEthernet0/0" ospf = ospf_route.replace('O', 'OSPF') ospf = ospf.replace(',', '') ospf = ospf.strip().split() # type(ospf) # builtins.list ospf.remove('via') print(ospf) parameters = """ Protocol: Prefix: AD/Metric: Next-Hop: Last update: Outbound Interface: """ parameters = parameters.split() #Так как при разбивке split() Last update и Outbound Interface поделились на 2 строки удалим ненужные части parameters.remove('update:') parameters.remove('Interface:') #Узнаем index Last чтобы потом его удалить и на его место вставить цельный "Last update" m = parameters.index('Last') parameters.pop(m) parameters.insert(m, 'Last update') #Узнаем index Outbound чтобы потом его удалить и на его место вставить цельный "Outbound Interface" m = parameters.index('Outbound') parameters.pop(m) parameters.insert(m, "Outbound Interface") #смотрим для самопроверки, любуемся, убеждаемся что одинаковой длинны ospf parameters len(ospf) len(parameters) #ну и собсна решение в лоб i = str(list(zip(parameters, ospf))) i = i.replace('[','').replace(']','').replace('(','').replace(')','').replace('\'','') i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12 = i.split(',') print("\n{:24}{:24}\n{:24}{:24}\n{:24}{:24}\n{:24}{:24}\n{:24}{:24}\n{:24}{:24}\n".format(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12))
Protocol: OSPF Prefix: 10.0.24.0/24 AD/Metric: 110/41 Next-Hop: 10.0.13.3 Last update 3d18h Outbound Interface FastEthernet0/0
Офлайн
857
timofmax
только вопрос почему отступ у первой строки получается
timofmaxПреобразование списка (и других подобных типов) в строку, а потом обработка этой строки считается вредным хаком, который никогда не используется. Его могут использовать только тогда, когда слишком сложно исправить какой-то код, а решение нужно слишком срочно. Этот хак и привёл тебя к ошибке.i = str(list(zip(parameters, ospf)))
Отредактировано py.user.next (Июнь 6, 2017 02:33:38)
Офлайн