Recherche dans un dictionnaire.

From Tuxunix
Jump to: navigation, search

Exemple


$ ./searchInDico.py dico.txt manger boire toto
le mot 'manger' est present dans le dictionnaire 'dico.txt' :-)
le mot 'boire' est present dans le dictionnaire 'dico.txt' :-)
le mot 'toto' est pas present dans le dictionnaire 'dico.txt' :-(


Code


   1.#! /usr/bin/python
   2.       
   3.#
   4.#@Name searchDico.py
   5.#@Note Recherche des mots dans un dico
   6.#@Author Tuxedo
   7.#@Date 21/03/2008
   8.#@Brief
   9.#@Note
  10.#
  11.       
  12.import sys
  13.import os.path
  14.       
  15.#travail argument lit le fichier et mais tous dans une variable
  16.def workArgs():
  17.    if len(sys.argv) < 2:
  18.        print "Usage: "+ sys.argv[0] +" nom_du_dico mot1 mot2..."
  19.    else:
  20.        fic=sys.argv[1]
  21.        if os.path.isfile(fic):
  22.            f=open(fic)
  23.            data=f.read()
  24.            f.close()
  25.            outTabHash(data, fic)
  26.        else:
  27.            print "le premier argument (%s) est pas un fichier ou existe pas !"%(fic)
  28.
  29.       
  30.def outTabHash(data, fileName):
  31.    #separe les mots avec split
  32.    listeData=data.split()
  33.    #inserer dans table de hash (for)
  34.    tableHash={}
  35.    cpt=1
  36.    i=0
  37.    foundWord=0
  38.    for i in listeData:
  39.        if i == "": break
  40.        tableHash[i]=cpt
  41.        cpt=cpt+1
  42.    #test appartenance (has_key)
  43.    j=0
  44.    for j in range(len(sys.argv)):
  45.        if j == 0 or j == 1: continue
  46.        if tableHash.has_key(sys.argv[j]):
  47.            print "le mot "%s" est present dans le dictionnaire "%s"
  48.             :-)"%(sys.argv[j], fileName)
  49.            foundWord=foundWord+1
  50.            continue
  51.        else:
  52.            print "le mot "%s" est pas present dans le dictionnaire "%s"
  53.                :-)"%(sys.argv[j], fileName)
  54.            continue
  55.        if foundWord == 0:
  56.            print "Aucun mot trouve :-("
  57.#
  58.#Main
  59.#
  60.workArgs()