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 :

regex qui retourne None


Sujet :

Python

  1. #1
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut regex qui retourne None
    Bonjour,
    Je galère toujours autant avec les regex que j'utilise une fois par an...
    Ici, j'ai une chaine qui est extraite d'un fichier et je ne comprends pas pourquoi le retour est None : un problème de caractère spécial ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    chaine = """( * )  été remontées de la base._____________________________________________________________________________________________________________________________ N°9856959M. BASS--S L
     
    *9856959*
    Classe  ""
    """
     
    recherche3 = re.search(r"N°(.*?)Classe", chaine)
    Au final, je veux récupérer la sous-chaine BASS--S L sachant que dans nmon fichier, j'ai plein de lignes avec des N° différents.

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Je pense avoir une idée : peut-être parce que je lis le fichier avec :
    et qu'ensuite je fais ma recherche.
    Comme ma recherche porte sur plusieurs lignes, ça pourrait planter là ?

  3. #3
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Avec findall, j'ai l'impression que c'est plus concluant.
    Est-ce la solution la plus simple ?
    [edit] En fait, cela ne fonctionne pas non plus.

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    bonjour
    Citation Envoyé par marco056 Voir le message
    Bonjour,
    Au final, je veux récupérer la sous-chaine BASS--S L
    pas compris, ta regex indique de No à Classesi tu désires que "BASS--S L" pas besoin de recherche mutiligne, et une lecture fichier ligne à ligne sans regex peut même faire l'affaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for line in fichier:
        if " N°" in line:   # a voir si suffisant
            match = line.rsplit(maxsplit=2)[-2:]
            print(match)
    si tout le fichier est chargé dans une variable "chaine"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matches = re.findall(r'N°(.*?)\n', chaine, re.MULTILINE)
    matches = re.findall(r'N\°(.*?)\nClasse ', chaine, re.DOTALL)
    ta regex inclu aussi le numéro, mais ce n'était pas la question

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 202
    Par défaut
    Hello,
    est-ce que tu as plusieurs valeurs à récupérer ? Si oui peux-tu nous montrer plusieurs lignes avec plusieurs valeurs à récupérer ?
    la chaine à récupérer est-elle toujours en fin de ligne après quelque chose qui ressemble à N°xxxxxxxxM.
    Ami calmant, J.P

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par marco056 Voir le message
    Je pense avoir une idée : peut-être parce que je lis le fichier avec :
    et qu'ensuite je fais ma recherche.
    Comme ma recherche porte sur plusieurs lignes, ça pourrait planter là ?
    Certes oui ça c'est déjà un bon point de départ.
    La syntaxe for lig in fichier est faite pour traiter des fichiers ayant des lignes (du caractère terminé par un '\n') et pour lesquelles chaque ligne constitue une information complète.

    Si l'information (et j'ai déjà eu le cas) commence à la ligne 3 et se termine à la ligne 7, fatalement tu ne peux plus utiliser la structure ci-dessus.

    Dans ce cas, la première chose à faire est de trouver comment identifier le début et la fin de l'information. Ensuite tu écris une fonction qui se charge de récupérer cette information dans le fichier sous forme itérative (donc elle te génèreinfo1, info2, info3 etc à la demande) et seulement à partir de là tu peux appliquer ta regex sur l'info traitée (et si en passant tu lui supprimes ses '\n' intermédiaires ça n'en est que mieux).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci à vous,
    j'ai essayé de testé vos propositions, sans succès.
    Effectivement, c'est un fichier très long dans lequel je dois récupérer plein d'informations.
    A la base, c'est un pdf que j'ai converti en txt.
    J'effectue mes recherches dans ce txt (j'espère ne pas être parti sur un pb XY...)
    Les infos que je recherche sont nombreuses et multiples.
    Je souhaite récupérer BIBI Camille dans
    ____________________ N°537M. BIBI Camille
    *537*
    Classe une classe au hasard
    puis plus loin BOBO Bertrand dans :
    ____________________ N°2212M. BOBO Bertrand
    *2212*
    Classe une classe au hasard
    Entre ces deux infos (en fait il y a plus de 200 noms à récupérer), j'ai aussi des valeurs à récupérer, par exemple :
    7 et 7 dans :
    Epreuves terminalesFrançais écrit7Français oral7PhilosophieInscritEpreuve orale terminale dite Grand OralInscritIngénierie, [/CODE]
    Cette partie, j'y suis parvenu.
    Par contre, certaines infos ne veulent pas se livrer, comme les valeurs numériques dans :
    [CODE]Appréciations des professeurs : (*) moyenne des notes des deux premiers trimestres de l'année de Terminale en cours. Eléments d™appréciation saisis par le professeur principal : Appréciation du chef d'établissement : Avis du chef d'établissement :DISCIPLINESAPPRECIATIONS GENERALESNote(*) etclassement del'élèveEffectif classeou groupeEnseignement moral etcivique Bon investissement dans la matière.12,519
    28Physique-Chimie etMathématiquesSpé Maths : Ensemble un peu juste.Spé Phys : sérieux.7,6223
    28PhilosophieTravail. Bonne participation en classe. Elève.
    9,1325
    J'espère avoir été plus clair...
    Je vais peut-être aller voir si je peux chercher directement dans le .pdf.

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 202
    Par défaut
    pour les noms tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     recherche3 = re.findall(r"M\.\s(.+)$", chaine,re.M)

  9. #9
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Ah oui ! Merci, cela semble fonctionner.
    J'étais parti à tester la bibliothèque tabula avec tabulate directement sur le pdf.

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    donc si je reprends mon code, c'est une chose du type ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    classes = re.findall(r'N\°(.*?)\nClasse ', toutlefichier, re.DOTALL)
    for classe in classes:
        nom_classe = regex ("", classe, simpleligne)   # pour trouver type "BASS--S L"  , le regex de jurassic pork
        eleves = re.findall(r'eleve(.*?)/eleve ', classe, multilignes)
        for eleve in eleves:
            notes[eleve] = regex(eleve, multiligne?) # parse ligne à ligne ou regex
    faire des regex dans les résultats d'autres regex parentes pour avoir une structure

  11. #11
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par papajoker Voir le message
    donc si je reprends mon code, c'est une chose du type ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    classes = re.findall(r'N\°(.*?)\nClasse ', toutlefichier, re.DOTALL)
    for classe in classes:
        nom_classe = regex ("", classe, simpleligne)   # pour trouver type "BASS--S L"  , le regex de jurassic pork
        eleves = re.findall(r'eleve(.*?)/eleve ', classe, multilignes)
        for eleve in eleves:
            notes[eleve] = regex(eleve, multiligne?) # parse ligne à ligne ou regex
    Apparemment, pb avec l'instruction "regex"...

  12. #12
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    pour les noms tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     recherche3 = re.findall(r"M\.\s(.+)$", chaine,re.M)
    Par contre, pas facile à partir de là de récupérer les données entre les noms car pour certains noms, les données sont absentes.
    En tous cas, merci, cela me débloque déjà pas mal.

  13. #13
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    J'effectue mes recherches dans ce txt (j'espère ne pas être parti sur un pb XY...)
    Pour avoir déjà eu ce genre de travail à faire, c'est la seule bonne méthode m'ayant permis d'avoir un travail efficace. En vrai, j'ai fais de l'interfaçage bash/python en m'appuyant du meilleur des deux mondes.

    Mais dans ton cas, ça semble devenir compliqué à la vue du formatage résultant d'un PDF -> txt

    Peut-être que d'autres formats seraient plus adaptés, mais il faut déjà tester, par exemple xml, html, qui utiliserait un module tel que lxml ou beautifulsoup ou ...

    Tu auras peut-être des modules Python dédiés à la lecture de PDF qui peuvent rendre plus facile l'analyse, faut encore une fois tester. De mon côté cette partie ne me permettait pas de répondre à la demande de temps d'exécution maximum.

    Sur le principe, je pense donc que ta solution n'est pas déconnant du tout !

  14. #14
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Apparemment, pb avec l'instruction "regex"...
    ce n'était qu'une structure : pas du code python valide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chapitres = regex_multiligne dans livre
    for chapitre in chapitres:
        titre = regex_ligne (dans chapitre)
        for pararaphe in regex_multiligne("^\n(./)^\n" dans livre):
              eleves= regex ... (dans paragraphe)
              notes = regex ... (dans paragraphe ou dans eleve)

  15. #15
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marco056 Voir le message
    A la base, c'est un pdf que j'ai converti en txt.
    J'effectue mes recherches dans ce txt (j'espère ne pas être parti sur un pb XY...)
    Ben... Généralement on considère que toute conversion détruit (ou corromp) de l'information... surtout quand la conversion se fait depuis ensemble de départ plus riche (ici PDF) que l'ensemble d'arrivée (du TXT).

    Citation Envoyé par marco056 Voir le message
    Les infos que je recherche sont nombreuses et multiples.
    Je souhaite récupérer BIBI Camille dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ____________________ N°537M. BIBI Camille
    *537*
    Classe une classe au hasard
    Hoho... Tu veux récupérer la petite Bibi dans une classe? Es-tu certain de bien prendre en considération toutes les conséquences inhérentes au sens qu'on peut donner à cette phrase...?

    Citation Envoyé par marco056 Voir le message
    Je vais peut-être aller voir si je peux chercher directement dans le .pdf.
    https://www.datacorner.fr/pdf/
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 716
    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 716
    Par défaut
    Salut,

    Citation Envoyé par marco056 Voir le message
    Par contre, pas facile à partir de là de récupérer les données entre les noms car pour certains noms, les données sont absentes.
    Si le texte est dans les cases d'un ou de plusieurs tableaux, "est dans la même case que" ou "est dans la case (i, j)" sont des informations qui disent quoi va avec quoi qu'on doit récupérer.

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

  17. #17
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 202
    Par défaut
    Hello,
    Citation Envoyé par marco056 Voir le message
    Par contre, pas facile à partir de là de récupérer les données entre les noms car pour certains noms, les données sont absentes.
    En tous cas, merci, cela me débloque déjà pas mal.
    Peux-tu nous montrer des lignes avec ce cas de figure.
    Sinon pour récupérer proprement du texte d'un PDF ( sauf PDF image) :
    1 - Ouvrir le PDF avec un lecteur PDF (ex : Acrobat Reader ou Navigateur (ex : Chrome))
    2 - Sélectionner tout le texte du document (CTRL A) et le coller dans NotePad++. Enregistrer en format texte.

    Ami calmant, J.P

  18. #18
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci.
    Un extrait du texte est de la forme :
    Appréciations des professeurs : (*) moyenne des notes des deux premiers trimestres de l'année de Terminale en cours. Eléments d™appréciation saisis par le professeur principal : Appréciation du chef d'établissement : Avis du chef d'établissement :DISCIPLINESAPPRECIATIONS GENERALESNote(*) etclassement del'élèveEffectif classeou groupeEducation Physique etSportiveTrès bon niveau de compétence, par un travail sérieux et assidu associé à un excellent état d'esprit.Bonne autonomie et gestion . Une excellente participation aux projets associés15,948
    24Ingénierie, innovationet développementdurableÉlève sérieux et réfléchi et surtout curieux et motivé. Bon état d'esprit et forcément les résultats suivent.14,963
    23Histoire/GéographieÉlève volontaire et sérieux. Excellent investissement. De très belles capacités.
    16,232
    23Enseignement moral etciviqueÉlève volontaire et sérieux. Excellent investissement. De très belles capacités.15,151
    23PhilosophieTravail très satisfaisant et très convaincant pour répondre au type de formation demandée pour la
    poursuite des études.13,335
    23Langue vivante A :AnglaisUne belle performance teintée de curiosité, de pertinence dans les interventions et d'une solide maitrisede la langue. Bravo!15,623
    23Langue vivante B :EspagnolBon niveau et sérieux. Implication de qualité et progrès.14,714
    15Physique-Chimie etMathématiquesExcellent élève
    Je voudrais par exemple récupérer 14,71 4 15 sur la dernière info
    ou encore 15,15 1 23 juste avant Philosophie
    Je bloque encore sur le parsing du fichier txt malgré les aides apportées.
    Je vais aussi avoir à récupérer pour "Ingénierie, innovationet développementdurable" les données 14.96 3 23 mais cela peut être autre chose à la place comme "Architecture et Construction" ou bien d'autres choix encore.
    Là où je me dis que le pdf serait plus exploitable, c'est parce que ces données sont dans des tableaux. J'ai vu qu'on pouvait récupérer les données de tableaux, le plus dur étant de sélectionner les tableaux qui m'intéressent parmi les 800 que j'ai.

  19. #19
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 202
    Par défaut
    Tu le récupères comment ton texte à partir du PDF ? cela ne ressemble pas à ce que l'on peut obtenir par ma méthode du copier coller à partir d'un lecteur PDF (c'est plus propre).
    Sinon si tu as vraiment des tableaux dans ton PDF tu peux essayer tabula (qui transformes des tableaux PDF en csv). Si avec l'auto détect tabula ne détecte aucun tableau dans ton PDF c'est que ceux sont des faux tableaux que tu as dans ton PDF.

  20. #20
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Effectivement, j'ai utilisé PyPDF2
    En faisant un copier-coller, c'est effectivement plus propre et plus exploitable.
    Merci.
    Avec tabula, j'ai essayé hier mais j'ai énormément de tableaux que je ne veux pas exploiter forcément.

Discussions similaires

  1. [10] select contenant une Regex qui ne retourne rien
    Par LFC dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/01/2020, 13h39
  2. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 16h56
  3. Procedure stockée qui retourne un curseur
    Par kinaï dans le forum Débuter
    Réponses: 1
    Dernier message: 10/08/2004, 14h42
  4. Fonction qui retourne un tableau
    Par _lara_ dans le forum ASP
    Réponses: 6
    Dernier message: 24/05/2004, 15h06
  5. Réponses: 14
    Dernier message: 09/04/2004, 13h44

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