compter le nombre de meme mot dans un .txt

compter le nombre de meme mot dans un .txt - Python - Programmation

Marsh Posté le 25-04-2009 à 08:14:03    

Bonjour tout le monde,
 
Je suis debutant en programmation, c'est avec un amis que je decouvre le language "Python".
 
Je souhaiterais faire une operation sur un fichier .txt
1) Trouver un mot dans le texte
2) Afficher ce mot
3) Afficher le nombre de fois que ce mot apparait dans le texte
 
Fichier Texte :

Citation :

Jean est un super hero
Jean tue le monstre n1
Jean tue le monstre n2


 
resultat souhaite:
Le mot cherche est : monstre
Le nombre de fois que ce mot apparait est 2
 
Code Python:

Code :
  1. import re
  2. def foo (fichier):
  3. z = open(fichier, 'r')
  4. mot = 0
  5. result = 0
  6. for ligne in z:
  7.  if ligne == "":
  8.   break
  9.  ligne = ligne[:-1]
  10.  p1 = re.compile('Jean tue le (?P<text>[a-zA-Z0-9_])')
  11.  a = p1.search(ligne)
  12.  p2 = re.compile('(?P<nombre>[0-9]+)')
  13.  b = p2.search(ligne)
  14.  if a:
  15.   mot = a.group('text')
  16.  if b:
  17.   str_nb = b.group('nombre')
  18.   result = result + int(str_nb)
  19. print ("Le mot recherche est : ", mot)
  20. print ("Le nombre de fois que ce mot apparait est : ", result)
  21. z.close()


 
Voila, si quelqu'un sait me dire ou est le probleme SVP :)
Merci.


Message édité par Elmoricq le 25-04-2009 à 13:30:23
Reply

Marsh Posté le 25-04-2009 à 08:14:03   

Reply

Marsh Posté le 25-04-2009 à 14:17:41    

Quelle est l'erreur que tu obtiens? Je vois un programme (pas terrible soit dit en passant, et avec l'indentation pêtée) mais pas ce qui ne fonctionne pas


Message édité par masklinn le 25-04-2009 à 14:18:32

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-04-2009 à 17:35:12    

bah si
foo pete à la premiere ligne à cause de l indentation
s il y connait rien la fonction n est d ailleurs jamais lancée et de toute facon elle saurait pas quoi ouvrir comme fichier :o


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 25-04-2009 à 17:56:44    

mIRROR a écrit :

bah si
foo pete à la premiere ligne à cause de l indentation


Ca c'est sûrement parce que ça a été collé n'importe comment et qu'il a perdu l'indentation :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-04-2009 à 18:19:23    

admettons mais je lancerai pas de cacahuetes là dessus [:cosmoschtroumpf]


Message édité par mIRROR le 25-04-2009 à 18:19:34

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed