2013-10-17 52 views
0

我今天開始使用python包'networkx',我很努力地理解你如何從外部文件讀取輸入數據。在網絡中讀取輸入數據x

文檔中顯示的示例處理可以直接從shell讀取的小型網絡。

我有指定與此格式的大電網的遺留文件:

'from_node' 'to_node' 'edge_name' 'edge_capacity' 'flow_cost' 

下一組的卡上寫着:

'node type' (source or sink), 'capacity', 'cost' 

我要解決的最大流問題。我怎樣才能讀取這樣的輸入數據文件?

回答

1

您可以閱讀使用parse_edgelist邊緣:

In [1]: import networkx as nx 

In [2]: lines = ["from to name capacity cost", "from1 to1 name1 capacity1 cost1"] 

In [3]: G = nx.parse_edgelist(lines, data = (('name', str), ('capacity', str), ('cost', str))) 

In [5]: G.edges(data=True) 
Out[5]: 
[('from1', 'to1', {'capacity': 'capacity1', 'cost': 'cost1', 'name': 'name1'}), 
('to', 'from', {'capacity': 'capacity', 'cost': 'cost', 'name': 'name'})] 

爲節點,你可能只需要遍歷文本文件和註釋圖。該文檔提供了很多閱讀圖形的方法:

http://networkx.github.io/documentation/latest/reference/readwrite.html

+0

謝謝Juniper。它看起來像是我需要開始使用'networkx'。 – Augusto