Reading and writing graphs

Edge List

graphscope.experimental.nx.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.

Parameters
  • path (file 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.

  • comments (string, optional) – The character used to indicate the start of a comment.

  • delimiter (string, optional) – The string used to separate values. The default is whitespace.

  • create_using (NetworkX graph constructor, optional (default=nx.Graph)) – Graph type to create. If graph instance, then cleared before populated.

  • nodetype (int, float, str, Python type, optional) – Convert node data from strings to specified type

  • data (bool or list of (label,type) tuples) – Tuples specifying dictionary key names and types for edge data

  • edgetype (int, 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.

Returns

G – A networkx Graph or other type specified with create_using

Return type

graph

Examples

>>> 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.

See also

parse_edgelist, write_edgelist

Notes

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

Adjacency List

graphscope.experimental.nx.read_adjlist(path, comments='#', delimiter=None, create_using=None, nodetype=None, encoding='utf-8')[source]

Read graph in adjacency list format from path.

Parameters
  • path (string or file) – Filename or file handle to read. Filenames ending in .gz or .bz2 will be uncompressed.

  • create_using (NetworkX graph constructor, optional (default=nx.Graph)) – Graph type to create. If graph instance, then cleared before populated.

  • nodetype (Python type, optional) – Convert nodes to this type.

  • comments (string, optional) – Marker for comment lines

  • delimiter (string, optional) – Separator for node labels. The default is whitespace.

Returns

G – The graph corresponding to the lines in adjacency list format.

Return type

NetworkX graph

Examples

>>> G = nx.path_graph(4)
>>> nx.write_adjlist(G, "test.adjlist")
>>> G = nx.read_adjlist("test.adjlist")

The path can be a filehandle or a string with the name of the file. If a filehandle is provided, it has to be opened in ‘rb’ mode.

>>> fh = open("test.adjlist", "rb")
>>> G = nx.read_adjlist(fh)

Filenames ending in .gz or .bz2 will be compressed.

>>> nx.write_adjlist(G, "test.adjlist.gz")
>>> G = nx.read_adjlist("test.adjlist.gz")

The optional nodetype is a function to convert node strings to nodetype.

For example

>>> G = nx.read_adjlist("test.adjlist", nodetype=int)

will attempt to convert all nodes to integer type.

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

The optional create_using parameter indicates the type of NetworkX graph created. The default is nx.Graph, an undirected graph. To read the data as a directed graph use

>>> G = nx.read_adjlist("test.adjlist", create_using=nx.DiGraph)

Notes

This format does not store graph or node data.

See also

write_adjlist