IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème remplacement d'un caractère dans un string [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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(" ", "-"))

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par marcoxavier Voir le message
    Mon but est d'enlever tous les caractères inutiles ([ & ] & ') et j'y arrive voici ce que je rajoute à mon code :
    Ce que vous appelez "caractères inutiles" n'est que la conséquence de ce que ss_doss et listFic sont des listes de chaînes de caractères. Donc il n'y a rien à enlever, juste comprendre comment est structurée l'information retournée par os.walk et apprendre ce que sont listes, chaînes de caractères et boucles (qui sont des types de base de Python) afin de pouvoir exploiter cela.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> liste = ['image', 'Iso']
    >>> print(liste)
    ['image', 'Iso']
    On y retrouve bien [ , ] & '
    Et puisque c'est une liste, on va pouvoir accéder à chacun de ses éléments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> for e in liste: print(e)
    ...
    image
    Iso
    >>>
    Et y retrouver des noms de s/répertoires ou de fichiers exploitables.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Par défaut
    Bonjour,

    Ah oui effectivement ce sont des tableaux, je n'avais même pas remarqué ! J'etais tellement focalisé sur le résultat que j'attendais que je ne l'ai même pas vu, ca simplifie tout effectivement !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer un caractère dans un string
    Par Nileeda dans le forum C++
    Réponses: 2
    Dernier message: 11/04/2016, 10h14
  2. Réponses: 4
    Dernier message: 05/10/2010, 15h02
  3. remplacer un caractère dans un string
    Par ryoussef19 dans le forum C++/CLI
    Réponses: 10
    Dernier message: 28/08/2007, 13h41
  4. [RegEx] Remplacer des caractères dans une string
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 22h26
  5. [VBA] Un caractère dans un string
    Par Neilos dans le forum Access
    Réponses: 5
    Dernier message: 23/06/2005, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo