This documents the development version of NetworkX. Documentation for the current release can be found here.


read_edgelist(path, comments='#', delimiter=None, create_using=None, nodetype=None, data=True, edgetype=None, encoding='utf-8')[source]

Read a graph from a list of edges.

pathfile or string

File or filename to read. If a file is provided, it must be opened in ‘rb’ mode. Filenames ending in .gz or .bz2 will be uncompressed.

commentsstring, optional

The character used to indicate the start of a comment.

delimiterstring, optional

The string used to separate values. The default is whitespace.

create_usingNetworkX graph constructor, optional (default=nx.Graph)

Graph type to create. If graph instance, then cleared before populated.

nodetypeint, float, str, Python type, optional

Convert node data from strings to specified type

databool or list of (label,type) tuples

Tuples specifying dictionary key names and types for edge data

edgetypeint, float, str, Python type, optional OBSOLETE

Convert edge data from strings to specified type and use as ‘weight’

encoding: string, optional

Specify which encoding to use when reading file.


A networkx Graph or other type specified with create_using


Since nodes must be hashable, the function nodetype must return hashable types (e.g. int, float, str, frozenset - or tuples of those, etc.)


>>> nx.write_edgelist(nx.path_graph(4), "test.edgelist")
>>> G = nx.read_edgelist("test.edgelist")
>>> fh = open("test.edgelist", "rb")
>>> G = nx.read_edgelist(fh)
>>> fh.close()
>>> G = nx.read_edgelist("test.edgelist", nodetype=int)
>>> G = nx.read_edgelist("test.edgelist", create_using=nx.DiGraph)

Edgelist with data in a list:

>>> textline = "1 2 3"
>>> fh = open("test.edgelist", "w")
>>> d = fh.write(textline)
>>> fh.close()
>>> G = nx.read_edgelist("test.edgelist", nodetype=int, data=(("weight", float),))
>>> list(G)
[1, 2]
>>> list(G.edges(data=True))
[(1, 2, {'weight': 3.0})]

See parse_edgelist() for more examples of formatting.