我有一个带有节点和边列表的简单点文件。 每个节点都是网络设备。设备通过接口相互连接,所以我使用头尾标签作为接口名称:
"172.16.3.205" -- "172.16.3.178" [taillabel="27", headlabel="1:16"];
我试图找到2个给定节点之间的所有简单路径并获取节点列表和正确的接口:
import networkx as nx
G=nx.read_dot('out.gv')
for path in nx.all_simple_paths(G,source='172.16.3.178',target='172.16.3.207'):
path = G.subgraph(path)
path.edges(data=True)
我得到这样的东西:
[('172.16.3.178', '172.16.3.205', {'taillabel': '"27"', 'headlabel': '"1:16"'}), ('172.16.3.203', '172.16.3.205', {'taillabel': '"27"', 'headlabel': '"26"'}), ('172.16.3.203', '172.16.3.207', {'taillabel': '"26"', 'headlabel': '"28"'})]
' 172.16.3.178'转换为' 172.16.3.205'。 有没有办法保存订单?
P.S。实际上,我并不需要绘制图表。我只需要一个列表(或更有用的)节点,其中的接口涉及路径,如下所示: [(' 172.16.3.178',{' 1:16'}),(' 172.16.3.203',{' 27' ,' 26'}),(' 172.16.3.205',{' 26',' 27'}),(&#39 ; 172.16.3.207',{' 28'})]