Effacer une ligne dans un fichier avec python

Fermé
titateur - 17 sept. 2008 à 17:56
 titateur - 18 sept. 2008 à 11:08
Bonjour,

je suis en train de développer une application de gestion de dossier sous python.
J'ai une IHM Tkinter et je souhaite charger different fichier de configuration du style.ini.
Ces fichiers sont donc modifiable par l'utilisateur.
Le fichier se presente sous la forme :
variable=valeur
Je veux pouvoir changer les valeurs, mais si la nouvelle valeur est plus petite (en nombre de caractere) que l'ancienne, je me retrouve avec des espaces en fin de ligne.
J'ai une classe dans laquelle j'ai une méthode removeoldline, mais je ne parviens pas à effacer tous les espaces devant le retour chariot dans le fichier.
Voici le code de removeoldline

def __RemoveOldLine(self, position):
"""Efface du fichier la ligne repérée à la position du curseur <position>
Une fois effacée le 1er caractere de cette ligne doit etre \n <---ce que je n'arrive pas à faire
"""

#positionne le curseur fichier au bon endroit
self.workingfile.seek(position)
#efface tous les caracteres jusqu'au \n
car=''
readline=''

while 1:
#lit un caractere de la ligne
car=self.workingfile.read(1)
#si le caractere lu n'est pas le \n (fin de ligne)
if car!='\012':
#Ajouter le caractere à la construction de la ligne
readline+=car
else:
#sinon, sortir de la boucle
break
print "readline :<",readline,">"
#Repositionner le pointeur de fichier en debut de ligne
self.workingfile.seek(position)
#Ecrire à la place une ligne d'espace du nbre de caractere de readline
self.workingfile.write(' '*len(readline))

Quelqu'un sait-il comment supprimer ces espaces dans le fichier texte, car ensuite, je réécris une ligne au même endroit pour sauvegarder la configuration.

Merci d'avance
A voir également:

1 réponse

bonjour,

Je pensais que mon problème de débutant en python sur les fichiers était assez simple pour les personnes plus expérimentées que moi.

J'ai pour l'instant contourné le problème au chargement du fichier en question, en enlevant les espaces indésirable avec in split().
Il existe certainement quelque chose de mieux à faire.
J'ai cherché sur pas mal de forum sur le web, mais pour l'instant, je n'est pas trouvé la réponse.

Je me réexplique au besoin:
j'ai un fichier ini de la forme:
#commentaires\n
#commentaires\n
\n
path=/home/bidule/truc/machin/\n
variable=unevaleur\n
etc...

si je modifie la valeur de path en
path=/home/bidule/truc/
dans le fichier cela s'enregistre sous la forme
path=/home/bidule/truc/ \n <-- avec 7 espaces avant le \n
Ce sont ces espaces que je ne parviens pas à supprimer, et que je récupère ensuite dans mon dictionnaire.

Merci d'avance.
0