import codecs rutas = {} def main(): carguerutas() ruta = escojaruta() orig = escojaestacion(ruta) dest = escojaestacion(ruta,orig) tiempo = tardanza(orig,dest,ruta) print("De",orig,"a",dest,"tarda",tiempo,"minutos.") input() def tardanza(de,hasta,por): f,min = False,0 for cada in por: if f: min += cada[2] if de==cada[0]: f=True if hasta==cada[0]: f=False if f: min += cada[1] return min def escojaruta(): lista = rutas.keys() opciones = "" for nombre in lista: opciones += nombre + ", " opciones = opciones[:-2] valor = False while valor not in lista: valor = input("Rutas "+opciones+". Escoja una: ") return rutas[valor] def escojaestacion(recorrido,inicio=False): lista,opciones = [],"" if inicio: f = False for x in recorrido: if f: lista.append(x[0]) opciones += x[0]+", " if inicio == x[0]: f = True opciones = opciones[:-2] else: c = 2 for x in recorrido: lista.append(x[0]) c = len(opciones) opciones += x[0]+", " lista = lista[:-1] opciones = opciones[:c-2] esc = False; while esc not in lista: esc = input("Estaciones "+opciones+". Esoja una: ") return esc def carguerutas(): archivo = codecs.open("transmilenio.dat", "r", "utf-8") for linea in archivo: if linea[0:1] == '[': nombre = linea[1:].strip() nombre = nombre[:-1] rutas[nombre] = [] elif linea.strip() == "": pass elif linea[0:3] in ['L-S', 'L-V', 'D-F', 'S 0', 'S 1']: pass else: rutas[nombre].append((linea.strip(),1,2)) archivo.close() if __name__ == '__main__': main()