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 :

Demande d'aide pour traitement de données [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut Demande d'aide pour traitement de données
    Bonjour à toutes et tous,

    Je viens vers vous pour m'aider à améliorer le code que j'ai écrit, car actuellement, c'est extrêmement long.
    Je suis développeur, mais très débutant en Python.

    Principe :
    A partir de deux fichiers .csv, je souhaite générer une fichier GEDCOM
    Le premier fichier contient des données de personnes, j'ai environ 35 fichiers, un par année qui ont chacun, environ 400 000 lignes.
    Le second fichier, est une fichier .csv, de correspondance entre un code ville INSEE et le détail pour ce code INSEE, ce fichier à environ 36 000 lignes.

    Exemple de fichier (Année 1971)
    Fichier 1:
    "nomprenom";"sexe";"datenaiss";"lieunaiss";"commnaiss";"paysnaiss";"datedeces";"lieudeces";"actedeces"
    "PACCARD*JEAN/";"1";"19001211";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19711021";"01093";"42"
    "PERRUCHET*JOANNY/";"1";"19050808";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19710310";"71270";"132"
    "RIGAUD*JEANNE MARIE/";"2";"19080805";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19710218";"01446";"1"
    "GUICHARD*ANTOINETTE/";"2";"19130426";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19710523";"01028";"3"
    "BOUCHY*JEAN CLAUDE/";"1";"18940930";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19710218";"69384";"92"
    "GAUTHIER*MICHEL/";"1";"18990922";"01001";"L'ABERGEMENT-CLEMENCIAT";"";"19710723";"01028";"5"
    Fichier 2
    insee;cPostam;Commune;dep;reg
    1001;1400;L'ABERGEMENT-CLEMENCIAT;AIN;RHONE-ALPES
    1002;1640;L'ABERGEMENT-DE-VAREY;AIN;RHONE-ALPES
    1004;1500;AMBERIEU-EN-BUGEY;AIN;RHONE-ALPES
    1005;1330;AMBERIEUX-EN-DOMBES;AIN;RHONE-ALPES
    1006;1300;AMBLEON;AIN;RHONE-ALPES
    1007;1500;AMBRONAY;AIN;RHONE-ALPES
    Le code Python que j'ai créé.
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    import os
     
    Nom = Prenom = Sexe = DateNaissance = DateDeces = VilleN = DepN = RegionN = VilleD = DepD = RegionD = ""
    mon_fichier = ""
     
    os.system("cls")
     
    def chercheVille(Code, Type):
        comm = open('commune.csv', "r")
        leCode = Code[1:len(Code)-1]
        # utilisez readline() pour lire la première ligne
        maComm = comm.readline()
        while maComm:
            laLigneComm = maComm.split(";")
            if (len(laLigneComm[0]) == 4):
                valActuelle = "0" + laLigneComm[0]
            else:
                valActuelle = laLigneComm[0]
            if(valActuelle == leCode):
                if(Type == "N"):
                    global VilleN, DepN, RegionN
                    VilleN = laLigneComm[2]
                    DepN = laLigneComm[3]
                    RegionN = laLigneComm[4]
                else:
                    global VilleD, DepD, RegionD
                    VilleD = laLigneComm[2]
                    DepD = laLigneComm[3]
                    RegionD = laLigneComm[4]             
            maComm = comm.readline()
        comm.close
     
    def analyseIdentite(Valeur):
        global Nom, Prenom
        Nom = Valeur[1:Valeur.find("*")]
        Prenom = Valeur[Valeur.find("*")+1:Valeur.find("/")]
     
    def analyseSexe(Valeur):
        global Sexe
        if ("1" in Valeur):
            Sexe = "M"
        else:
            Sexe = "F"
     
    def analyseDate(Valeur, Type):
        global DateNaissance, DateDeces
        annee = Valeur[1:5]
        mois = Valeur[5:7]
        if ("01" in mois):
            mois="JAN"
        elif ("02" in mois):
            mois="FEB"
        elif ("03" in mois):
            mois="MAR"
        elif ("04" in mois):
            mois="APR"
        elif ("05" in mois):
            mois="MAY"
        elif ("06" in mois):
            mois="JUN"
        elif ("07" in mois):
            mois="JUI"
        elif ("08" in mois):
            mois="AUG"
        elif ("09" in mois):
            mois="SEP"
        elif ("10" in mois):
            mois="OCT"
        elif ("11" in mois):
            mois="NOV"
        elif ("12" in mois):
            mois="DEC"
        jour = Valeur[7:9]
        if (Type == "N"):
            DateNaissance = jour + " " + mois + " " + annee
        else:
            DateDeces = jour + " " + mois + " " + annee
     
    # Ouvrir le fichier en lecture seule
    file = open('deces-1972.csv', "r")
    # utilisez readline() pour lire la première ligne
    line = file.readline()
    AncN = AncD = ""
     
    mon_fichier = open("import-1972.ged", "w")
    mon_fichier.write("0 HEAD\n")
    mon_fichier.write("1 DEST ANY\n")
    mon_fichier.write("1 CHAR UTF-8\n")
    mon_fichier.close
    i = 1
    while line:
        os.system("cls")
        print(i)
        if (line.find("*") >= 0):
            maLigne = line.split(";")
            analyseIdentite(maLigne[0])
            analyseSexe(maLigne[1])
            analyseDate(maLigne[2], "N")
            if (maLigne[3] != AncN):
                chercheVille(maLigne[3], "N")
                AncN = maLigne[3]
            analyseDate(maLigne[6], "D")
            if(maLigne[7] != AncD):
                chercheVille(maLigne[7], "D")
                AncD = maLigne[7]
     
            mon_fichier = open("import-1972.ged", "a")
            mon_fichier.write("0 @I%i@ INDI\n" % i)
            mon_fichier.write("1 NAME " + Prenom + "/" + Nom + "/\n")
            mon_fichier.write("1 SEX %s\n" % Sexe)
            mon_fichier.write("1 BIRT\n")
            mon_fichier.write("2 DATE %s\n" % DateNaissance)
            mon_fichier.write("2 PLAC " + VilleN + "," + DepN + "," + RegionN)
            mon_fichier.write("2 SOUR @S1@\n")
     
            mon_fichier.write("1 DEAT\n")
            mon_fichier.write("2 DATE %s\n" % DateDeces)
            mon_fichier.write("2 PLAC " + VilleD + "," + DepD + "," + RegionD)
            mon_fichier.write("2 SOUR @S1@\n")
            mon_fichier.write("0 @S1@ SOUR\n")
            mon_fichier.write("1 TITL Registre de l'INSEE\n")
            mon_fichier.close
            i = i + 1
        line = file.readline()
    file.close()
    mon_fichier = open("import-1972.ged", "a")
    mon_fichier.write("0 TRLR\n")
    mon_fichier.close
    Ceci fonctionne, mais, comme je le disais, c'est très long, pour l'analyse de 1 000 lignes du fichier 1, cela prend environ 35 secondes, soit plus de 2h30 par fichier de base, comme j'en ai environ 35, je vous laisse calculer.

    Si vous pouvez m'apporter votre aider pour améliorer mon code, ce serait formidable.

    Merci d'avance et au plaisir de vous lire.

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

    Je m'arrête à la fonction chercheVille: à chaque itération vous allez balayez le fichier commune.csv pour y rechercher Code passé en paramètre.

    Sachant que les accès disques sont 1000 fois plus lents que les accès mémoire, çà serait bien de ne lire le fichier qu'une seule fois au lancement du programme et de balayer la liste correspondante en mémoire ou mieux en faire un dictionnaire avec code comme clef.

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

  3. #3
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Je m'arrête à la fonction chercheVille: à chaque itération vous allez balayez le fichier commune.csv pour y rechercher Code passé en paramètre.

    Sachant que les accès disques sont 1000 fois plus lents que les accès mémoire, çà serait bien de ne lire le fichier qu'une seule fois au lancement du programme et de balayer la liste correspondante en mémoire ou mieux en faire un dictionnaire avec code comme clef.

    - W
    Bonjour wiztricks,

    Déjà, merci d’avoir pris le temps de me répondre.
    Je craignais cette réponse. 😀
    Je ne vous caches pas que j’ai cherché à créer un dico dans un fichier dico.py puis de l’importer, mais après, je m’y perd et ne m’en sors pas.

    Si vous aviez l’amabilité de me donner un exemple concret, je travaillerais sur cet axe.

    Mille mercis.
    Jp

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

    Si vous ne maîtrisez pas les dictionnaires, utilisez une liste.

    Et si vous voulez utilisez un dictionnaire, ouvrez un tuto. apprenez à les utiliser... Sinon ben oui vous serez perdu, normal, c'est pas compliqué mais il faut y passer un peu de temps.

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

  5. #5
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Merci,

    Je vais donc m'y plonger, car je n'ai commencé le Python qu'hier et j'ai normalement de manque.

    Je reviendrai plus tard, si j'ai besoin d'assistance.

    Encore merci

  6. #6
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Je viens de créer un dico, dans un fichier séparé, dico.py

    Résumé du fichier dico.py
    Lieu = [
    {"Code":"1001", "Ville":"L'ABERGEMENT-CLEMENCIAT", "Dep":"AIN", "Reg":"RHONE-ALPES", "Pays":"FRANCE"},
    {"Code":"1002", "Ville":"L'ABERGEMENT-DE-VAREY", "Dep":"AIN", "Reg":"RHONE-ALPES", "Pays":"FRANCE"},
    {"Code":"1004", "Ville":"AMBERIEU-EN-BUGEY", "Dep":"AIN", "Reg":"RHONE-ALPES", "Pays":"FRANCE"},
    {"Code":"1005", "Ville":"AMBERIEUX-EN-DOMBES", "Dep":"AIN", "Reg":"RHONE-ALPES", "Pays":"FRANCE"},
    ....
    ]
    Je fais mon import
    Comment faire pour rechercher une valeur dans la clé Code et récupérer les items correspondant pour le mettre dans une variable ?

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

    Vous avez créé une liste de dictionnaires.
    Pour trouver un code donné, il faut faire des itérations (comme sur les lignes du fichier, ce que vous savez faire).

    Citation Envoyé par jpbontront Voir le message
    car je n'ai commencé le Python qu'hier et j'ai normalement de manque.
    Ah ben oui, mais si vous n'avez pas pris le temps d'apprendre, ben, vous ne savez pas.

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

  8. #8
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Bonjour,

    il aurait été plus judicieux de créer le dictionnaire en lisant le fichier d'entré. Je ne sais pas si le fait que vous rentriez en dur votre dictionnaire soit un avantage pour le traitement par la suite.

    Sinon pour rechercher une valeur il faut utiliser la clé qui va bien.

    Dans votre fichier où vous importez dico :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import dico
     
    code = dico.Lieu[0]["Code"]
     
    ville = dico.Lieu[0]["Ville"]
    Par contre je ne vois pas pourquoi vous mettez votre dictionnaire dans une liste, si il ni a pas d’intérêt à le faire je vous conseille de faire un dictionnaire simplement, cela vous permettra d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import dico
     
    code = dico.Lieu["Code"]
     
    ville = dico.Lieu["Ville"]

  9. #9
    Membre averti Avatar de jpbontront
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Par défaut
    Merci NekCorp pour le complément d'information.

    Je viens de modifier mon code et il est actuellement 3 fois plus rapide.
    1000 transaction en 12 secondes au lieu de 35 secondes.

    Je suppose que votre expérience peut encore m'aider à optimiser ce code pour une vitesse d’exécution, encore plus rapide.

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    """
     
    Titre : Transformation de deux csv en fichier GEDCOM
    Nom du projet : ${PROJECT_NAME}
     
    Nom du fichier : ${NAME}
    Date de la dernière révision : ${MONTH_NAME_FULL},${YEAR},${MONTH},${DAY},${TIME}
     
    Auteur(s) : Jean-pierre BONTRONT
    Révision n° :
    Version : 
     
    IDE utilisé : ${PRODUCT_NAME}
     
    #---------------------------------------------------------------
    Fichiers du projet :
        En entrée
            - analyse.py
            - dico.py
            - deces-1972.csv
        En sortie
            - import-1972.ged
     
    """
     
    ################################################################
    #            PROGRAMME PRINCIPAL
    ################################################################
     
    #---------------------------------------------------------------
    #           Zone des 'imports' de modules
    #---------------------------------------------------------------
    import os
    import dico
     
    #---------------------------------------------------------------
    #           Zone de déclaration des variables globales
    #---------------------------------------------------------------
    Nom = Prenom = Sexe = DateNaissance = DateDeces = VilleN = DepN = RegionN = VilleD = DepD = RegionD = ""
    mon_fichier = ""
     
    #---------------------------------------------------------------
    #           Zone de déclaration des modules ou des fonctions
    #---------------------------------------------------------------
    def chercheVille(Code, Type):
        if(Code[1:2] == "0"):
            Code = Code[2:6]
        else:
            Code = Code[1:6]
     
        for leCode in range(len(dico.Lieu)):
            if(dico.Lieu[leCode]["Code"] == Code):
                if(Type == "N"):
                    global VilleN, DepN, RegionN
                    VilleN = dico.Lieu[leCode]["Ville"]
                    DepN = dico.Lieu[leCode]["Dep"]
                    RegionN = dico.Lieu[leCode]["Reg"]
                else:
                    global VilleD, DepD, RegionD
                    VilleD = dico.Lieu[leCode]["Ville"]
                    DepD = dico.Lieu[leCode]["Dep"]
                    RegionD = dico.Lieu[leCode]["Reg"]
     
    def analyseIdentite(Valeur):
        global Nom, Prenom
        Nom = Valeur[1:Valeur.find("*")]
        Prenom = Valeur[Valeur.find("*")+1:Valeur.find("/")]
     
    def analyseSexe(Valeur):
        global Sexe
        if ("1" in Valeur):
            Sexe = "M"
        else:
            Sexe = "F"
     
    def analyseDate(Valeur, Type):
        global DateNaissance, DateDeces
        annee = Valeur[1:5]
        mois = Valeur[5:7]
        if ("01" in mois):
            mois="JAN"
        elif ("02" in mois):
            mois="FEB"
        elif ("03" in mois):
            mois="MAR"
        elif ("04" in mois):
            mois="APR"
        elif ("05" in mois):
            mois="MAY"
        elif ("06" in mois):
            mois="JUN"
        elif ("07" in mois):
            mois="JUI"
        elif ("08" in mois):
            mois="AUG"
        elif ("09" in mois):
            mois="SEP"
        elif ("10" in mois):
            mois="OCT"
        elif ("11" in mois):
            mois="NOV"
        elif ("12" in mois):
            mois="DEC"
        jour = Valeur[7:9]
        if (Type == "N"):
            DateNaissance = jour + " " + mois + " " + annee
        else:
            DateDeces = jour + " " + mois + " " + annee
     
    #---------------------------------------------------------------
    #           PROGRAMME
    #---------------------------------------------------------------
     
    os.chdir("C:/Users/Jean-pierre/Documents/Généalogie/Actes de décès FR/")
    os.system("cls")
     
    # Ouvrir le fichier en lecture seule
    file = open('deces-1972.csv', "r")
    # utilisez readline() pour lire la première ligne
    line = file.readline()
    AncN = AncD = ""
     
    mon_fichier = open("import-1972.ged", "w")
    mon_fichier.write("0 HEAD\n")
    mon_fichier.write("1 DEST ANY\n")
    mon_fichier.write("1 CHAR UTF-8\n")
    mon_fichier.close
    i = 1
    while line:
        os.system("cls")
        print(i)
        if (line.find("*") >= 0):
            maLigne = line.split(";")
            analyseIdentite(maLigne[0])
            analyseSexe(maLigne[1])
            analyseDate(maLigne[2], "N")
            if (maLigne[3] != AncN):
                chercheVille(maLigne[3], "N")
                AncN = maLigne[3]
            analyseDate(maLigne[6], "D")
            if(maLigne[7] != AncD):
                chercheVille(maLigne[7], "D")
                AncD = maLigne[7]
     
            mon_fichier = open("import-1972.ged", "a")
            mon_fichier.write("0 @I%i@ INDI\n" % i)
            mon_fichier.write("1 NAME " + Prenom + "/" + Nom + "/\n")
            mon_fichier.write("1 SEX %s\n" % Sexe)
            mon_fichier.write("1 BIRT\n")
            mon_fichier.write("2 DATE %s\n" % DateNaissance)
            mon_fichier.write("2 PLAC " + VilleN + "," + DepN + "," + RegionN + "\n")
            mon_fichier.write("2 SOUR @S1@\n")
     
            mon_fichier.write("1 DEAT\n")
            mon_fichier.write("2 DATE %s\n" % DateDeces)
            mon_fichier.write("2 PLAC " + VilleD + "," + DepD + "," + RegionD + "\n")
            mon_fichier.write("2 SOUR @S1@\n")
            mon_fichier.write("0 @S1@ SOUR\n")
            mon_fichier.write("1 TITL Registre de l'INSEE\n")
            mon_fichier.close
            i = i + 1
        line = file.readline()
    file.close()
    mon_fichier = open("import-1972.ged", "a")
    mon_fichier.write("0 TRLR\n")
    mon_fichier.close

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

Discussions similaires

  1. Besoin d'aide pour traitement de données
    Par Karoutchi Killian dans le forum Windows
    Réponses: 0
    Dernier message: 07/10/2015, 02h09
  2. Réponses: 1
    Dernier message: 07/07/2015, 22h10
  3. Demande d'aide pour extraire des données Excel à l'aide python
    Par userinfo dans le forum Général Python
    Réponses: 5
    Dernier message: 05/01/2013, 12h45
  4. Demande d'aide pour un traitement en cartographie
    Par pham1980 dans le forum SIG : Système d'information Géographique
    Réponses: 6
    Dernier message: 17/06/2007, 19h45

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