#13
Citation:
myFile = open("C:\\Documents and Settings\\All Users\\bru-11-r6.car.belbone.rtf",'r')
for ligne in myFile:
print ligne
Le seul petit problème reste le fait que le caractère retour chariot '\n' est repris par '\par" suivis du retour à la ligne.
#15
Citation:
myFile = open("C:\\Documents and Settings\\All Users\\bru-11-r6.car.belbone.rtf",'r')
for ligne in myFile:
print ligne
Tout est OK, ca marche à la perfection.
Vraiment bizarre.............
Bon ça ne fait rien, on verra plus tard.
Citation:
je cherche à effectuer des filtres et des tris lors de l'ouverture d'un fichier du genre
Pour être un peu rigoureux, je dirais que l'ouverture est une chose et qu'un traitement du texte du fichier en est une autre , qui vient postérieurement à l'ouverture. Mais ça ne peut pas se faire en même temps.
Ouverture de fichier = essentiellement une sollicitation du système d'exploitation pour lui faire positionner un pointeur dans les données du fichier inscrites dans le disque dur et le mettre en état d'obéir à des ordres qui peuvent être donnés par read() , readline() , readlines() ,seek() ,tell() ,write() . Il faut lire la documentation pour savoir ce que font ces fonctions.
Les types d'ordre autorisés dépendent du mode d'ouverture du fichier, spécifié par 'r','a','w','r+','U','U+',etc.
Faire print ligne n'est pas une instruction qui permet d'analyser un fichier.
Pour traiter les données d'un fichier, il faut d'abord les avoir mises dans une structure de données.
On peut mettre le contenu du fichier dans une chaîne avec read() ou dans une liste avec readlines().
À cette occasion, on peut déjà faire une sélection dans les données qu'on met en mémoire en chaîne ou en liste.
Par exemple si on fait d'abord seek(20) avant de lire le fichier, le pointeur va avancer de 20 caractères et on ne lira ensuite que les caractères suivants.
Ou bien pour sauter la première ligne, on peut faire agir une fonction citée plus haut.
Il faut se creuser les méninges.
----------------
Ensuite, une fois les données mises en chaîne ou en liste, on peut s'attaquer à un traitement de ces données.
Soyons concret:
Citation:
chercher un mot qui se répète souvent dans le document
En sachant a priori que le mot se répète souvent , ou en faisant trouver ce ou ces mots répétitifs par le programme lui-même ?
Citation:
n'afficher que les données qui le précèdent
Fastoche, à condition de savoir ce que veut dire précisément "qui le précèdent". Jusqu'où ?
Citation:
permettre directement à celui qui utilise le programme, d'afficher les données qu'il désire
Rien de difficle.
Mais tu veux dire : les données d'un certain type ?
Parce que sinon, si l'utilisateur connaît a priori les données, à quoi servirait-il de les chercher dans le texte ?
La question qui se pose est en fait: quel type de données ? quelles caractéristiques de ces données permettent de les localiser dans le texte ? il faut être plus précis. Par exemple, s'il s'agit d'une température, on cherchera les chiffres situés entre les chaines'T = ' et 'degres celsius'. mais il faut un minimum d'information sur ce qu'on cherche.
PS
Regarde
- la méthode de chaîne find()
- la classe de création d'un type particulier de dictionnaire bien utile pour les décomptes: defaultdict()
Il y a aussi plein de discussions sur le forum concernant la recherche de mots , de décompte de mots, de tris en fonction de leurs occurences.