OVH Cloud OVH Cloud

Se déplacer dans un fichier

2 réponses
Avatar
thiebaut
Bonjour,(débutant)
Je cherche à me déplacer dans un fichier afin de changer une ligne.
J'ai réussi à effectuer la modification en copiant, je charge dans une
liste et j'écris la liste dans un nouveau fichier.
Mais bon je voudrais simplement trouver une méthode qui me permette
d'avoir un pointeur sur la ligne genre txt.seek() ....
ligne 6 ...
Si vous avez des pistes ...


Merci d'avance
Olivier

2 réponses

Avatar
bruno at modulix
thiebaut wrote:
Bonjour,(débutant)
Je cherche à me déplacer dans un fichier afin de changer une ligne.
J'ai réussi à effectuer la modification en copiant, je charge dans une
liste et j'écris la liste dans un nouveau fichier.


Et c'est comme ça que tout le monde fait...

Mais bon je voudrais simplement trouver une méthode qui me permette
d'avoir un pointeur sur la ligne genre txt.seek() ....
ligne 6 ...

Si vous avez des pistes ...


Utiliser un SGBDR ?-)

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
Eric Deveaud
thiebaut wrote:
Bonjour,(débutant)
Je cherche à me déplacer dans un fichier afin de changer une ligne.
J'ai réussi à effectuer la modification en copiant, je charge dans une
liste et j'écris la liste dans un nouveau fichier.


c'est la bonne facon de faire au iota suivant pres.
pourquoi charger dans une liste le contenu du fichier ??
pourquoi ne pas faire une boucle de lecture ligne par ligne
si la ligne est a modifier ecrire la modification
sinon ecrire la ligne lue.


Mais bon je voudrais simplement trouver une méthode qui me permette
d'avoir un pointeur sur la ligne genre txt.seek() ....
ligne 6 ...


pour quoi faire au juste ??

Si vous avez des pistes ...


indexer le fichier avant traitement, ie :
lire le fichier ligne par ligne
avant chaque lecture stocker l'offset et le numero de ligne correspondant
ecrire le tout dans un fichier ou sous forme d'un objet python persistant

ensuite avant tout usage du fichier indexé, ouvrir l'index correspondant
precedement cree.
trouver l'index voulu (une ch'tit recherche dichotomique) permettra de trouver
rapidement l'offset d'une ligne donné.
ouvrir le fichier a indexé a traiter puis se deplacer directement a l'offset
voulu.

Eric

--
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"