Build from CSV

edges.csv.

Read edges.csv with the csv module. Create it if it is not attached.

Goal

Print Dijkstra kilometres Nairobi→Kisumu.

from pathlib import Path
Path('edges.csv').write_text('from,to,km\nNairobi,Nakuru,160\nNakuru,Kisumu,180\nNairobi,Mombasa,480\nMombasa,Kisumu,550\n', encoding='utf-8')
print('wrote')
import csv
import networkx as nx
from pathlib import Path
G = nx.Graph()
with Path('edges.csv').open(encoding='utf-8', newline='') as handle:
    for row in csv.DictReader(handle):
        G.add_edge(row['from'], row['to'], weight=int(row['km']))
print(G.number_of_edges())
print(nx.dijkstra_path_length(G, 'Nairobi', 'Kisumu'))
import csv
from pathlib import Path
print(list(csv.DictReader(Path('edges.csv').open(encoding='utf-8', newline='')))[:2])
import networkx as nx
print(nx.Graph([('Nairobi', 'Nakuru')]).size())