Python 在networkx中读取输入数据

Python 在networkx中读取输入数据,python,file,io,networkx,Python,File,Io,Networkx,我今天开始使用python包'networkx',我很难理解如何从外部文件读取输入数据 文档中显示的示例涉及可直接从shell读取的小型网络 我有一个旧文件,它指定了一个具有以下格式的大型电网: 'from_node' 'to_node' 'edge_name' 'edge_capacity' 'flow_cost' 下一组卡片内容如下: 'node type' (source or sink), 'capacity', 'cost' 我想解决最大流量问题。如何读取这样的输入数据文件

我今天开始使用python包
'networkx'
,我很难理解如何从外部文件读取输入数据

文档中显示的示例涉及可直接从shell读取的小型网络

我有一个旧文件,它指定了一个具有以下格式的大型电网:

'from_node'  'to_node'  'edge_name'  'edge_capacity'  'flow_cost'
下一组卡片内容如下:

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

我想解决最大流量问题。如何读取这样的输入数据文件?

您可以使用
parse\u 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'})]
对于节点,您可能只需迭代文本文件并对图形进行注释。本文档提供了许多读取图形的方法:


谢谢你,Juniper。看起来这就是我开始使用“networkx”所需要的。