Problème remplacement d'un caractère dans un string
/!\ Le code complet est à la fin /!\
Bonjour, excusez-moi pour ce titre qui ne veux rien dire mais je ne savais pas comment décrire mon problème en une seule phrase.
Je suis actuellement en train de faire un programme qui scan un répertoire et qui sort le path de tous les fichiers/sous-dossiers.
Voici le code avec le résultat :
Code:
1 2 3 4 5 6 7 8
| import os
repScan = 'Fichiers'
for dossier, ss_doss, listFic in os.walk(repScan):
print(dossier, ss_doss, listFic)
>>>Fichiers ['image', 'Iso'] ['Informationstte.png']
>>>Fichiers\image [] ['InformationsRH.png']
>>>Fichiers\Iso [] ['debian-8.7.1-amd64-CD-1.iso'] |
Mon but est d'enlever tous les caractères inutiles ([ & ] & ') et j'y arrive voici ce que je rajoute à mon code :
Code:
1 2 3 4 5 6 7 8 9
| p = dossier + "" + str(ss_doss) + "" + str(listFic)
list_sc = [",", "-", "?", "'", "[", "]", "(", ")", "{", "}"]
print(''.join([i if i not in list_sc else ' ' for i in p]))
>>>Fichiers ['image', 'Iso'] ['Informationstte.png']
>>>Fichiers image Iso Informationstte.png
>>>Fichiers\image [] ['InformationsRH.png']
>>>Fichiers\image InformationsRH.png
>>>Fichiers\Iso [] ['debian-8.7.1-amd64-CD-1.iso']
>>>Fichiers\Iso debian 8.7.1 amd64 CD 1.iso |
On peux remarqué qu'en dessous de chaque string avec les symboles non voulu, il m'affiche bien ma phrase sans ces-derniers.
Et c'est la qu'est mon problème, maintenant je souhaite remplacer les espaces blancs par des \ seulement en python "\" ne s'écrit pas et cause une erreur, comment dois-je l'écrire?
De plus si on prend avec l'exemple de remplacer les blancs par des tirets (car je n'arrive pas à mettre des \) et bien ca pose problèmes car il y a plusieurs blancs d'affilés et je n'en veux qu'un par "groupe de blancs) je m'explique :
Si on rajoute :
Code:
1 2 3
| print(p.replace(" ", "-"))
>>>Fichiers ['image', 'Iso'] ['Informationstte.png']
>>>Fichiers--image----Iso----Informationstte.png-- |
Il met plusieurs tirets d'affilé hors je n'en veux qu'un pour au final faire quelque chose du genre : Fichiers-image-Iso-Informationstte.png (à terme ce sera des \ pour faire un path)
Et comment faire pour enlever les deux tirets après .png?
Voila, je sais pas si je me suis bien exprimé, en tout cas je reste attentif à vos réponse si vous avez besoin de plus de précisions.
Merci d'avance & voici le code au complet :
Code:
1 2 3 4 5 6 7 8 9
| import os
repScan = 'Fichiers'
for dossier, ss_doss, listFic in os.walk(repScan):
print(dossier, ss_doss, listFic)
p = dossier + "" + str(ss_doss) + "" + str(listFic)
list_sc = [",", "-", "?", "'", "[", "]", "(", ")", "{", "}"]
p = ''.join([i if i not in list_sc else ' ' for i in p])
print(p.replace(" ", "-")) |