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 :

Creation regex python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Août 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2023
    Messages : 5
    Par défaut Creation regex python
    Bonjour,

    Je viens de commencer à utiliser python pour mon travail pour extraire certaines data de fichier PDF, j'ai réussi a écrire un script qui fonctionne pour récupérer une info précise. Mais maintenant j'aimerai récupérer une adresse dans 300 fichiers mais l'adresse peut différer dans sa syntaxe. Pouvez-vous m'aider à créer le regex récupérer ces data ?
    Merci beaucoup

    Voici quelques exemples :
    - DA COSTA DAVID
    Appartement 15
    - BAT 15-7480203
    2 R DES BOUCHERS
    36100 ISSOUDUN

    - BLANCHARD SABINE
    Appartement _
    - BAT 1-7480197
    4 R JULES MASSENET
    36000 CHATEAUROUX

    Mme MARIE AUDINEAU
    Appartement _
    - BAT 6-7480219
    8 BIS RUE PASTEUR
    36000 CHATEAUROUX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # importing required modules
    from PyPDF2 import PdfReader
    from sys import argv
    import os
    import re
     
    # creating a pdf reader object
    dossier = 'TEST DPE'
    i = 1
    # Pour chaque fichier du répertoire dossier
    for f in os.listdir(dossier):
        # Compteur
        print(f"Fichier numéro {i}")
        i += 1
        # ouvre fichier resultat
        with open('results.csv', 'a') as file_r:
            # On essaye d'ouvrirle pdf
            try:
                reader = PdfReader(dossier + "/" + f)
            except:
                # Si jamais ca marche pas on ecrit dans le fichier resultat et on passe au pdf suivant
                file_r.write(f"{f}")
                continue
            # Extraction du texte (attention si pdf scanné ou image ceci ne fonctionne pas)
            text = ''
            for p in reader.pages:
                text += p.extract_text()
     
            #regex pour trouver le numéro ADEM
            res = re.findall('[0-9]{2}', text)  
            #Dedupliquer les resultats (set prend une liste et la rend unique)
            res = set(res)
            #ecrire le resultat dans le fichier resultat
            file_r.write(f"{f}")
            if res:
                for r in res:
                    file_r.write(f",{r}")
            file_r.write('\n')

  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 queneau Voir le message
    Mais maintenant j'aimerai récupérer une adresse dans 300 fichiers mais l'adresse peut différer dans sa synthaxe
    La structure semble identique première ligne le nom, les 3 suivantes: l'adresse et la dernière le code postal et la ville.

    Après dire "récupérer une adresse dans 300 fichiers", c'est déjà dire quelles informations utiliser au départ pour "chercher" et dire ce qu'on attend à trouver (avec des exemples).

    Si utiliser des regexp peut être plus performant, ce n'est pas indispensable: vous devriez savoir faire sans (pour illustrer ce que vous cherchez à faire par exemple) puis si ça fait du sens d'optimiser un peu avec des regexp pourquoi pas?
    Mais "optimiser" suppose une base qui marche!

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

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Hello,
    est-ce que tes adresses sont "isolées" dans le texte où elles se trouvent : par exemple une ligne vide au-dessus, une ligne vide en dessous et se trouvent-elles toujours à peu près au même endroit dans le texte. Plusieurs par texte ? toujours un code postal sur la dernière ligne de l'adresse ?
    Difficile de proposer une expression régulière sans avoir l'adresse dans son contexte réel.
    Ami calmant, J.P

Discussions similaires

  1. [RegExp] Une regex Python en Javascript
    Par ____22 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/08/2011, 17h15
  2. [Python] Regex d'intro
    Par nicolo011 dans le forum Général Python
    Réponses: 4
    Dernier message: 26/01/2010, 14h30
  3. Regex en python
    Par greg1517 dans le forum Général Python
    Réponses: 5
    Dernier message: 12/10/2009, 15h55
  4. regex : différence entre Perl et Python
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 08/01/2009, 20h53
  5. python et regex
    Par olaxius dans le forum Général Python
    Réponses: 2
    Dernier message: 15/11/2006, 14h02

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