Форум сайта python.su
0
и так сама задача Сразу каринка
In [30]: param = ''' ....: Protocol: ....: Prefix: ....: AD/Metric: ....: Next-Hop: ....: Last update: ....: Outbound Interface: ''' In [31]: ospf_route = "O 10.0.24.0/24 [110/41] via 10.0.13.3, 3d18h, FastEthernet0/0" In [32]: In [32]: param = param.strip().split() In [33]: In [33]: ospf_route = ospf_route.split() In [34]: ospf_route.remove('via') In [35]: In [35]: zip(param, ospf_route) Out[35]: [('Protocol:', 'O'), ('Prefix:', '10.0.24.0/24'), ('AD/Metric:', '[110/41]'), ('Next-Hop:', '10.0.13.3,'), ('Last', '3d18h,'), ('update:', 'FastEthernet0/0')]
Отредактировано timofmax (Май 31, 2017 12:11:14)
Офлайн
61
for i in zip(param, ospf_route): print(''.join(i))
Офлайн
0
ZerG
for i in zip(param, ospf_route):
print(''.join(i))
vlan, mac, intf = ['100', 'aabb.cc80.7000', 'Gi0/1'] print "%15s %15s %15s" % (vlan, mac, intf)
100 aabb.cc80.7000 Gi0/1
Офлайн
16
print('\n'.join(['{:<15}{}'.format(*item) for item in zip(param, ospf_route)])
Офлайн
0
Stright
print('\n'.join()
param = ''' Protocol: Prefix: AD/Metric: Next-Hop: Last update: Outbound Interface: ''' ospf_route = "O 10.0.24.0/24 [110/41] via 10.0.13.3, 3d18h, FastEthernet0/0" param = param.strip().split() ospf_route = ospf_route.split() ospf_route.remove('via') print('\n'.join(['{:<15}{}'.format(*item) for item in zip(param, ospf_route)])
print
Офлайн
16
Что значит не отрабатывает? Какую ошибку выводит?
print('\n'.join(['{:<15}{}'.format(*item) for item in zip(param, ospf_route)]))
Отредактировано Stright (Май 31, 2017 14:56:33)
Офлайн
0
StrightРаботает! Но все же если абстрагироваться от моего блудного кода,
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
ospf_route = "O 10.0.24.0/24 [110/41] via 10.0.13.3, 3d18h, FastEthernet0/0"
ospf_route = ospf_route.split() ospf_route.remove('via')
Отредактировано timofmax (Май 31, 2017 15:13:38)
Офлайн
857
>>> import re >>> >>> names = ('Protocol', ... 'Prefix', ... 'AD/Metric', ... 'Next-Hop', ... 'Last update', ... 'Outbound Interface') >>> fields = tuple(i + ':' for i in names) >>> >>> text = 'O 10.0.24.0/24 [110/41] via 10.0.13.3, 3d18h, FastEthernet0/0' >>> values = re.sub(r',|via|[\[\]]', '', text).split() >>> >>> lst = zip(fields, values) >>> >>> maxwidth = max(map(len, fields)) >>> fmt = '{:%d}{:10}' % (maxwidth + 4) >>> >>> out = '\n'.join(fmt.format(*i) for i in lst) >>> print(out) Protocol: O Prefix: 10.0.24.0/24 AD/Metric: 110/41 Next-Hop: 10.0.13.3 Last update: 3d18h Outbound Interface: FastEthernet0/0 >>>
Отредактировано py.user.next (Май 31, 2017 22:55:30)
Офлайн
0
py.user.nextпрочитал прорегулные выражения…
values = re.sub(r',|via|[\[\]]', '', text).split()
|via|[\[\]]
[\[\]]
[110/41]
Отредактировано timofmax (Июнь 1, 2017 15:49:16)
Офлайн
857
timofmax
Как интерпретировать?|via|[\[\]]
r',|via|[\[\]]'
[\[\]]
>>> import re >>> >>> re.search(r'[abc]', '123 [abc] 456]').group() 'a' >>> >>> re.search(r'\[abc\]', '123 [abc] 456]').group() '[abc]' >>>
Отредактировано py.user.next (Июнь 2, 2017 01:03:14)
Офлайн