|
|
|
|
Bonsoir à tous,
Avant tout, je précise que je suis débutante sur Python, et en programmation en général... Mes connaissances sont loin d'être optimales !
Bref, je résume ce qui me pose problème ce soir. Je fais des études de linguistique et j'aimerais utiliser Python pour faire certains calculs sur des textes (par exemple la fréquence de certains mots, des moyennes sur le nombre de mots par phrase, etc...).
Je sais comment ouvrir un fichier texte dans Python, mais j'ai des soucis en ce qui concerne l'application d'une fonction ou d'un script au contenu de ce fichier.
Je ne sais pas s'il existe une possibilité de faire cela directement, je vous montre comment j'ai procédé :
import codecs
f=codecs.open('texte2.txt',encoding='iso-8859-1')
data=f.read()
J'ai donc essayé comme précédent en transformant le contenu de mon fichier en une chaine pour pouvoir agir dessus.
Mais j'ai l'impression que cette chaine est bien trop grosse pour pouvoir être manipulée et à chaque fois que je tente une opération dessus le mode interactif de Python plante totalement et ne répond plus... (-> par exemple un data.split() ou pour couper le texte en utilisant des motifs)
Pour avoir une idée de la longueur du genre de texte que j'utilise :
http://www.gutenberg.org/files/11494/11494-8.txt
Voilà donc je ne sais pas trop s'il y a un moyen de faire cela plus simplement sans passer par une chaine ?
En tout cas désolée d'avance si ma question vous parait simpliste mais j'avoue que j'ai cherché dans différents cours et que dès qu'il s'agit de manipulation de fichiers les tutos parlent de suite choses très complexes et non pas de simple textes... Donc il n'est pas évident de trouver une réponse
Merci d'avance pour votre aide,
Sycosis
Configuration: Windows Vista Firefox 3.0.5
Je fais des études de linguistique et j'aimerais utiliser Python pour faire certains calculs sur des textes
f = open("monfichier, "r")
for ligne in f:
print ligne #Va t'afficher la prochaine ligne à chaque passage dans la boucle
Ceci dit, franchement ton fichier ne fait que 348 Ko, ce qui reste raisonable. Donc tu peux garder ton read(). Le problème c'est que si tu passes par Idle, ou autre débuggeur python, le traitement est plus lourd que si tu lançais ton programme en ligne de commande. Donc lance plutôt la bête en ligne de commande. Pour la suite je ne saurais trop te suggérer de poster ici les parties de ton code qui prennent du temps. Le problème est peut être aussi d'ordre algorithmique, parfois certaines manières de coder sont 100 fois moins efficaces que d'autres. Donc faudrait voir avec ton code.... que tu n'hésiteras pas à poster ici bien entendu. Le gâteau est un mensonge! |