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 :

Récupérer une partie précise d'un chemin


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut Récupérer une partie précise d'un chemin
    Bonjour à tous,

    Je voulais savoir comment faire pour pouvoir récupérer une partie d'un chemin.

    Par exemple j'ai un fichier qui a le chemin suivant :

    c:/exemple/test/f1

    Je voudrais récupérer le chemin à partir de exemple (exemple exclut). Donc récupérer test/f1 sachant que mes chemins commencent toujours par c:/exemple.

    Je vous remercie

  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,

    Après avoir découpé le chemin en liste de segments via os.path.split, chemin.split(os.sep), vous reconstruisez les bouts qui vous intéressent avec os.path.join.

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

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Hello,
    Dans un contexte moins général que ce que suggère ton titre, si je me base sur
    Je voudrais récupérer le chemin à partir de exemple (exemple exclut). Donc récupérer test/f1 sachant que mes chemins commencent toujours par c:/exemple.
    je pense que os.path.relpath pourrait te simplifier les choses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> path = '/opt/example/test/f1'
    >>> start = '/opt/example'
    >>> os.path.relpath(path, start)
    'test/f1'
    >>>

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Sous Windows, il faut aussi retirer la lettre du drive quand il y en a une.

    On peut créer une petite fonction qui "éclate" le chemin et renvoie la liste de ses éléments. C'est d'ailleurs dommage que ça n'existe pas déjà. Une fois fait, il est facile de recomposer le chemin souhaité avec os.path.join:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def eclatechemin(chemin):
        """éclate un chemin Windows et renvoie la liste de ses éléments"""
        drive, chemin = os.path.splitdrive(chemin)
        L = [drive]
        while chemin not in [u'', u'\\', u'/']:
            chemin, elem = os.path.split(chemin)
            L.insert(1, elem)
        return L
    Utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c = u"C:/Python27/Lib/site-packages/PyQt4/plugins/designer"
    print os.path.join(*eclatechemin(c)[2:])
    Lib\site-packages\PyQt4\plugins\designer

  5. #5
    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 tyrtamos Voir le message
    On peut créer une petite fonction qui "éclate" le chemin et renvoie la liste de ses éléments. C'est d'ailleurs dommage que ça n'existe pas déjà.
    chemin est "str", chemin.split(os.sep) devrait faire çà non?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour wiztricks

    Citation Envoyé par wiztricks Voir le message
    chemin est "str", chemin.split(os.sep) devrait faire çà non?
    A condition d'utiliser le séparateur qui va avec l'OS: '\' pour Windows. Ce qui n'est pas le cas dans l'exemple fourni. J'aurais bien aimé que ça marche.

Discussions similaires

  1. Récupérer une partie d'un chemin absolu
    Par oursquetaire dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 19/05/2009, 11h59
  2. [VBA]Récupérer une partie du chemin d'un fichier
    Par poivre dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2007, 19h34
  3. comment récupérer une partie d'une chaine
    Par yannickrohel dans le forum C
    Réponses: 7
    Dernier message: 27/02/2006, 10h31
  4. récupérer une partie d'un char*
    Par r0d dans le forum C
    Réponses: 5
    Dernier message: 10/11/2005, 14h14
  5. Récupérer une partie d'une chaine de caractère
    Par Cyborg289 dans le forum Langage
    Réponses: 5
    Dernier message: 07/07/2005, 14h06

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