def graph_from_file(self, file_name): file = open(file_name, "r") first_line = [int(x) for x in file.readline().split()] self.nb_sommets = first_line[0] self.nb_arcs = first_line[1] self.oriente = (first_line[2] == 1) # ajout de tous les sommets for i in range(self.nb_sommets): line = [a for a in file.readline().split()] sommet_cur = Sommet(line[0], lat=float(line[1]), long=float(line[2])) self.sommets[line[0]] = sommet_cur # ajout de tous les arcs for i in range(self.nb_arcs): line = [a for a in file.readline().split()] if len(line) == 0: print(i) else: s_source = self.sommets[line[0]] s_cible = self.sommets[line[1]] arc_cur = Arc(s_source, s_cible, value=float(line[2])) self.arcs['%s%s' % (s_source.name, s_cible.name)] = arc_cur # si le graphe n'est pas orienté, on ajoute l'inverse de chaque arc if not self.oriente: self.arcs['%s%s' % (s_cible.name, s_source.name)] = arc_cur.inverse() file.close()