Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1607 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Programmation python, fouille de texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programmation python, fouille de texte

n°2192231
skyzo75
Posté le 30-05-2013 à 14:15:41  profilanswer
 

Bonjour, étant débutant en programmation python je solicite l'aide des internautes afin de compter le nombre de mots d'un texte, la longueur moyenne, minimale et maximale des mots.  
 j'ai commencé par ceci
 
fichier=open("texte.txt","r" )
discour=fichier.read()
 
# Comptage du nombre de mots dans un texte
n = 0           # variable compteur
while 1:
    ch=fichier.readline()
    if ch=="":
        break  
    li=ch.split()
    n=n+len(li)
print "Ce fichier texte contient un total de", n," mots"  
 
Mais cela me rdit qu'il y a 0 mots ce qui est faux. Je suis un peu bloqué donc je demande de l'aide ou comment je pourrais faire autremement.
Merci

mood
Publicité
Posté le 30-05-2013 à 14:15:41  profilanswer
 

n°2192433
suizokukan
Posté le 31-05-2013 à 21:40:57  profilanswer
 

Bonsoir,
utilise des balises pour ton code afin de le rendre plus lisible.
 
Ce que tu écris n'est pas conforme à "l'esprit" Python : pour compter les mots d'un texte, le plus simple (sauf si ton fichier source est gigantesque) est de lire le texte d'un coup sans te soucier des lignes (read()), de le couper (split()) et de placer chaque mot dans un dictionnaire au moyen de quelque chose de spécialisé : tu peux imiter par exemple http://stackoverflow.com/questions [...] -in-python


---------------
rule #1 : trust the python
n°2193372
Profil sup​primé
Posté le 08-06-2013 à 00:10:29  answer
 

Hello,
 
Lorsque tu fais discours = fichier.read(), le fichier est parcouru en entier, et tout prochain appel à une fonction comme read ou readline renverra une string vide puisque tu as atteint la fin.
 
Cette ligne ne te sert à rien en fait, et c'est à cause d'elle que ton n reste à 0 puisque tu sors de la boucle for à la première itération.
 
Aussi tu peux utiliser le mot clé with qui permet entre autre de manipuler des fichiers sans se soucier des problèmes pouvant survenir à la fermeture.
 

Code :
  1. words = []
  2. with open('texte.txt', 'r') as f:
  3.     for line in f:
  4.         words.extend (line.split())


 
Ce petit bout de code te permet de récupérer tous les mots de ton texte dans words.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Programmation python, fouille de texte

 

Sujets relatifs
suppression de colonne dans un texteAide programmation PHP
programmation de la fft en langage CRe-programmation soft de WinXP a 7
programation python pygameProgrammation d'un jeu : BUG !
FICHIER TEXTE en JAVA un texte aléatoire dans un fenetre Popup
Aide programmation C++ (débutant)recherche google via script python
Plus de sujets relatifs à : Programmation python, fouille de texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR