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 :

[python] regexp sur une liste


Sujet :

Python

  1. #1
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut [python] regexp sur une liste
    Bonjour à tous,

    J'ai une liste python du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['youyou.lsf','plop.lsf','oups.lsf','merci.lsf','mince.lsf','bonjour','aurevoir']
    Je dois la transformer en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['youyou.lsf','plop.lsf','merci.lsf']
    c'est-à-dire: lister les fichiers *.lsf sauf oups.lsf et mince.lsf

    J'ai cherché une expression régulière qui pourrait me faire tout ça en même temps, mais avant de devenir fou j'ai finalement fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/env python
    import os, re
    allFiles = os.listdir(os.environ["PWD"])
    filtre = re.compile("\.lsf")
    outFiles = sorted(filter(filtre.search,allFiles))
    if "oups.lsf" in outFiles: outFiles.remove("oups.lsf")
    if "mince.lsf" in outFiles: outFiles.remove("mince.lsf")
    ce code me renvoie un résultat correct, mais si quelqu'un a une idée pour une regexp qui pourrait me faire tout ça directement?

    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut,
    Pour lister les fichiers, il y a le module glob :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import glob
    outFiles = glob.glob('str*.lsf')

  3. #3
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut
    Arf j'ai mal formulé le post original, je vais éditer. J'aurais du préciser qu'on peut avoir:

    str1.lsf = tartampion.lsf
    str2.lsf = youyoupie.lsf

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    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 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne comprends pas le dernier message, aussi je vais répondre au 1er:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L = ['youyou.lsf','plop.lsf','oups.lsf','merci.lsf','mince.lsf','bonjour','aurevoir']
    R = [elem for elem in L if elem[-4:]==".lsf" and elem not in ["oups.lsf", "mince.lsf"]]
    print R
    ['youyou.lsf', 'plop.lsf', 'merci.lsf']

  5. #5
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut
    merci

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

Discussions similaires

  1. etiquette ou label sur une liste deroulante
    Par camyo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/11/2005, 16h09
  2. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53

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