Accueil » Python » Forums Python » Forum général Python » Supprimer les espaces dans fichier

 • Supprimer les espaces dans fichier

Document Actions
Réponses: 12   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Supprimer les espaces dans fichier

Posté par Laurent le 18/04/2008 11:33
Bonjour à tous,

Je suis complètement nouveau en programmation et en Python. Je souhaite faire un programme pour me modifier le contenu d'un fichier cvs. J'ai utilisé un morceau de code trouvé sur ce site, mon problème est le suivant : je souhaite supprimer des "espaces".

Voici la structure du fichier :
Carrelage Faïence;CARRELAGE – FAIENCE;- Contrôle visuel de l’état des ouvrages;0,5;1;0,5

je souhaite remplacer : ";- "(10 espaces) par ";" mais le code suivant ne lit pas les espaces.

Voici le code :
code:
fichier=open("D:\Gammes_Preventive_v1.csv", "r")
contenu=fichier.read() #Lit tout le fichier d'un coup
index = { ';-          ' : ';' } #Remplacer ;-        par ;
for cle in index:
          contenu=contenu.replace(cle, index)

print contenufichier=open("D:\Gammes_Preventive_v1.csv", "r";)



Merci

 • Re: Supprimer les espaces dans fichier

Posté par gawel le 18/04/2008 11:52

 • Re: Supprimer les espaces dans fichier

Posté par Laurent le 18/04/2008 12:09
Merci de ta réponse gawel, des détails supplémentaires seraient biens venus

 • Re: Supprimer les espaces dans fichier

Posté par glickind le 05/05/2008 01:27
je t'invite également à relire la doc de open sur
http://docs.python.org/lib/built-in-funcs.html

code:
fichier=open("G.csv", "r")
contenu=fichier.read() #Lit tout le fichier d'un coup
fichier.close()

#Remplacer ;-        par ;
contenu=contenu.replace(';-'+10*' ',';') # 10*' ' = 10 espaces
#print contenu

# on va ecrire le nouveau contenu qui est plus court
# et ajuster la taille du fichier grace au mode "w" 
fichier=open("G.csv", "w") 
fichier.write(contenu)
fichier.close()

sad Re: Supprimer les espaces dans fichier

Posté par Laurent le 05/05/2008 12:03
Merci glickind, j'ai copier/coller ton code, le résultat est le même, rien ne se passe, les espaces ne sont pas supprimés ....

 • Re: Supprimer les espaces dans fichier

Posté par glickind le 06/05/2008 10:58
1. as-tu un message d'erreur ?

si tu enlèves le # devant print contenu
tu devrais voir le contenu s'afficher à l'écran

2. est-ce ca affiche le contenu de ton fichier ?
si oui, pas de pb de lecture

3. est-ce que le remplacement a été effectué ?
- si le remplacement a été effectué,
vérifie si tu as le droit en écriture sur le fichier (clic droit, propriétés ...)
- sinon c'est qu'il ne trouve pas ';-'+10*' '
parce qu'il n'y a pas 10 espaces:
soit il y en a moins,
soit il y a une tabulation, essaie avec ca:
code:
contenu=contenu.replace(';-\t',';')

 • Re: Supprimer les espaces dans fichier

Posté par Laurent le 06/05/2008 14:37
Merci de ton aide, voici les résultats

1 je n'ai pas de messages d'erreur

2 le contenu s'affiche bien à l'écran

3 le remplacement n'a pas été effectué
- j'ai les droits en écriture
- j'ai remplacé
code:
contenu=contenu.replace(';-'+10*' ',';') # 10*' ' = 10 espaces
par
code:
contenu=contenu.replace(';-\t',';')
le remplacement n'a toujours pas été effectué.
Si tu veux je peux te transmettre le fichier ? (Si OK merci de m'expliquer comment )

 • Re: Supprimer les espaces dans fichier

Posté par Laurent le 06/05/2008 14:44
Pour info le fichier d'origne est de type Excel sauvegardé en CVS.

 • Re: Supprimer les espaces dans fichier

Posté par glickind le 06/05/2008 16:39
tu peux le mettre sur http://dl.free.fr
et ensuite poster ici le lien sur lequel je peux le télécharger

 • Re: Supprimer les espaces dans fichier

Posté par Laurent le 06/05/2008 16:49

 • Re: Supprimer les espaces dans fichier

Posté par glickind le 07/05/2008 00:32
en regardant de plus près (avec un éditeur hexadécimal ou en utilisant chr en python), on peut voir qu'il n'y a pas 10 espaces,
mais 9 fois le caractère n°160 et 1 espace, d'où
code:
contenu=contenu.replace(';-'+9*chr(160)+' ',';')

 • Re: Supprimer les espaces dans fichier

Posté par glickind le 07/05/2008 00:45
pour info l'inverse de chr c'est ord
code:
>>> print ord('a')
97
>>> print chr(97)
a
>>> print ord(chr(97))
97
>>> print ord(' ')  # 1 espace
32

thumb up Re: Supprimer les espaces dans fichier

Posté par Laurent le 07/05/2008 08:20
Merci à toi glickind, ça marche parfaitement. J'ai retenu la leçon avant de vouloir modifier, il faut vérifier avec un éditeur HEXA

Encore merci