#!/usr/bin/env python """ Load football network in GML format and compute some network statistcs. Shows how to download GML graph in a zipped file, unpack it, and load into a NetworkX graph. Requires Internet connection to download the URL http://www-personal.umich.edu/~mejn/netdata/football.zip """ __author__ = """Aric Hagberg (hagberg@lanl.gov)""" # Copyright (C) 2007 by # Aric Hagberg <hagberg@lanl.gov> # Dan Schult <dschult@colgate.edu> # Pieter Swart <swart@lanl.gov> # All rights reserved. # BSD license. try: import pyparsing except ImportError as e: raise ImportError(str(e)+". Check http://pyparsing.wikispaces.com/") from networkx import * url="http://www-personal.umich.edu/~mejn/netdata/football.zip" try: # Python 3.x import urllib.request as urllib except ImportError: # Python 2.x import urllib import io import zipfile sock = urllib.urlopen(url) # open URL s=io.BytesIO(sock.read()) # read into BytesIO "file" sock.close() zf = zipfile.ZipFile(s) # zipfile object txt=zf.read('football.txt').decode() # read info file gml=zf.read('football.gml').decode() # read gml data # throw away bogus first line with # from mejn files gml=gml.split('\n')[1:] G=parse_gml(gml) # parse gml data print(txt) # print degree for each team - number of games for n,d in G.degree_iter(): print('%s %d' % (n, d))