Difficulté pour programmer une autocompletion en PYTHON
Fermé
MonsieurPa
Messages postés1Date d'inscriptionvendredi 17 juillet 2015StatutMembreDernière intervention17 juillet 2015
-
Modifié par MonsieurPa le 17/07/2015 à 06:13
Utilisateur anonyme -
23 janv. 2016 à 11:30
Bonjour à tous, je suis actuellement en train de coder un programme d'autocompletion en python
Voilà le but, nous avons un fichier text dans lequel ce trouve
Paris, 458 boulevard Saint-Germain
Paris, 343 boulevard Saint-Germain
Marseille, 343 boulevard Camille Flammarion
Marseille, 29 rue Camille Desmoulins
Marseille, 1 chemin des Aubagnens
Paris, 12 rue des singes
Paris, 34 quai VoLtAiRe
Paris, 34 rue Voltaire
Lille, 120 boulevard Victor Hugo
Marseille, 50 rue Voltaire
Toulouse, 90 rue Voltaire
Strasbourg 84 rue du Bouclier
Marseille, 78 boulevard de la libération
Lille, 30 rue Victor Danel
Mont Saint Martin, 42 rue de Bordeaux
Mont de Marsan, 100 avenue Pierre de Coubertin
Strasbourg, 391 boulevard de Nancy
Lyon, 56 rue du Docteur Albéric Pont
Lyon, rue du Docteur Albéric Pont
56 rue du Docteur Albéric Pont, Lyon
Lyon 56 grande rue
Lille, 90 rue d'Arras
Lille, 76 impasse Georges Pompidou
Je dois le parser de sorte qu'il me donne les 5 lettres les plus probable en commencent par la premiere lettre de chaque ville. la sortie dois normalement être :
{m} {p} {l] {s} {t} ( le programme reste en attente d'une prochaine lettre pour l'auto complétion )
Voicie ce que moi j'ai coder (Je suis débutant en python) :
import readline import sys from collections import Counter
if len(sys.argv) == 1: print("Error detected, [Program] [File]") sys.exit() elif len(sys.argv) == 2: filename = sys.argv[1] f = open(filename,'r') #b = f.read().strip().split(None, 3) b = f.read().splitlines() i = 0 liste = [] for line in b: if ',' not in line: print line
else: (ville, adresse) = line.split(', ') if len(adresse.split(' ')) < 3: print line else: numero = adresse.split(' ')[0] typeDeVoie = adresse.split(' ')[1] nomDeLaVoie = adresse.split()[2]
if typeDeVoie not in dicoTypeDeVoie: print line else: nomDeLaVoie = adresse.replace(numero, '').replace(typeDeVoie, '') if not numero.isdigit(): print line else: liste.append(ville + ' ' + adresse)