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 :

Aide application python


Sujet :

Python

  1. #1
    Membre à l'essai Avatar de scrat51
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Aide application python
    Bonjour,

    J'ai un projet de développement à réaliser. Je vous explique la demande :

    - Un personne de la société génère un fichier de configuration portant l’extension .record

    Cette extention est propre à HP . Le produit pour un information est HP Universal CMDB

    - Cette même personne doit cliquer sur l'exécutable ( que je dois faire, d’où mon poste) qui doit réaliser ceci :

    - Ouvrir le fichier .record

    - Parser le fichier .record avec la reconnaissance de balises précises ( <log start et <EXEC start)

    - Enregistrer le résultat du parsing <nom>.csv

    - Ouvrir le fichier <nom>.csv sous EXCEL

    Au final, les lignes du CSV doivent être dans le ordre que dans le fichier .record

    Je précise des informations qui pourront vous aider, à savoir :

    - Je développe l'application sous Linux et la personne qui va l'utiliser est sous Windows. Je compte faire la conversion avec py2exe.

    - Il faut que l'ouverture de fichier ( a savoir du .record) doit être un chemin absolu en précisant l’extension .record ( Mon problème que je ne sais pas faire)

    - Est ce qu'il est possible d'analyser le fichier .record comme pour un fichier XML ? ou il faut le convertir en XML ? Car l'apparence du fichier source ( .record) ressemble beaucoup à du XML.

    - Je liste dans mon programme les fichiers ayant une extension .record ( Mon problème que je ne sais pas faire)

    Je ne suis pas développeur, juste ingénieur système et réseaux. Je réalise ce programme pour dépanner un collègue, mais je galère.

    Je passe mon code que j'ai réaliser. Il doit y avoir des erreurs etc.. Pourriez vous regarder et m'aider à réaliser ce projet SVP ?

    Je vous remercie par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par scrat51 Voir le message
    Bonjour,

    J'ai un projet de développement à réaliser. Je vous explique la demande :

    - Un personne de la société génère un fichier de configuration portant l’extension .record

    Cette extention est propre à HP . Le produit pour un information est HP Universal CMDB

    - Cette même personne doit cliquer sur l'exécutable ( que je dois faire, d’où mon poste) qui doit réaliser ceci :

    - Ouvrir le fichier .record

    - Parser le fichier .record avec la reconnaissance de balises précises ( <log start et <EXEC start)

    - Enregistrer le résultat du parsing <nom>.csv

    - Ouvrir le fichier <nom>.csv sous EXCEL

    Au final, les lignes du CSV doivent être dans le ordre que dans le fichier .record

    Je précise des informations qui pourront vous aider, à savoir :

    - Je développe l'application sous Linux et la personne qui va l'utiliser est sous Windows. Je compte faire la conversion avec py2exe.

    - Il faut que l'ouverture de fichier ( a savoir du .record) doit être un chemin absolu en précisant l’extension .record ( Mon problème que je ne sais pas faire)

    - Est ce qu'il est possible d'analyser le fichier .record comme pour un fichier XML ? ou il faut le convertir en XML ? Car l'apparence du fichier source ( .record) ressemble beaucoup à du XML.

    - Je liste dans mon programme les fichiers ayant une extension .record ( Mon problème que je ne sais pas faire)

    Je ne suis pas développeur, juste ingénieur système et réseaux. Je réalise ce programme pour dépanner un collègue, mais je galère.

    Je passe mon code que j'ai réaliser. Il doit y avoir des erreurs etc.. Pourriez vous regarder et m'aider à réaliser ce projet SVP ?

    Je vous remercie par avance
    Bonjour,

    vous avez une init :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list = [row[0],row[1], row[2], row[3], row[4]]
    qui pose plusieurs problèmes : list est un mot réservé du langage Python et correspond à l'objet x = list() = [ ], il faut donc changer le nom de votre variable pour liste_resultats, par exemple.
    de plus, row n'est pas défini au moment de son utilisation ici.

    pour le reste, je vous ai mis les URLs de documentation dans le code directement.

    ça vous embête si je publie votre code ici ?

    @+.

  3. #3
    Membre à l'essai Avatar de scrat51
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut suite
    Oui pas de soucis !! Je ne vois pas vos modifications

    Merci

  4. #4
    Membre à l'essai Avatar de scrat51
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Ok, merci, mais je ne vois rien de nouveau dans mon code

    Merci

    Oui, tu peux le mettre mais enlève mon nom/prénom et société stp.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par scrat51 Voir le message
    Oui pas de soucis !! Je ne vois pas vos modifications

    Merci
    Ben j'attendais votre réponse !

    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
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    # Fichier smdb_beta.py
     
    """
        Licence :   GNU General Public Licence
     
        Description :
     
        A partir d'un fichier en entrée .RECORD récupérer les
        informations recherchées et les exporter dans un fichier csv
        pour son exploitation.
    """
     
    #~ import sys
    import os
     
    import os.path as OP
     
    import time
    import subprocess
    import shlex
    import gettext
     
    import argparse
     
    from xml.dom import minidom
     
    # svp, prenez 5 minutes pour lire la PEP 8 Python :
     
    # http://legacy.python.org/dev/peps/pep-0008/
     
    # variables globales
    info_file = OP.expanduser("~/.cmdb")
     
    # Intervalles de mise à jour (en heures)
    update_interval = 24
     
    # liste pour stocker les resulats du parsing
    #~ list = [row[0],row[1], row[2], row[3], row[4]]
     
    liste_resultats = [] # comme ça ?
     
    #~ app_dir = OP.dirname(sys.argv[0])
     
    app_dir = OP.abspath(OP.dirname(__file__))
     
    localdir = OP.join(app_dir, "locale")
     
    gettext.install("messages", localdir)
     
    # fonctions
     
    def help():
        """
            Affichage de l'utilisation du programme
        """
     
        # NON, voir https://docs.python.org/2.7/library/argparse.html
        pass
     
        #~ print(_("""\
    #~ usage: {0} <votre recherche>
            #~ -p ou --parsing : parsing du fichier .record
            #~ -g ou --generation csv : generation du fichier de sortie en csv
            #~ -h ou --help : affiche ce message d'aide
            #~ """).format(sys.argv[0])
                    #~ )
        #~ exit(1)
     
    def print_choice_dialog():
        print("---")
        print("Application CMDB")
        print("Version Beta")
        print("Developpeur XXX")
     
    def check_choice(nbchoice):
        """
            Vérification de la réponse de l'utilisateur
        """
        while True:
            try:
                choice = input(_("Entrez le choix voulu:)")).split(" ")
            except KeyboardInterrupt:
                print("Okay, bye bye!")
                exit(0)
            if choice[0] == "+":
                return "+"
            for i in choice:
                if i.isdigit():
                    if int(i) in range(nbchoice+1):
                        return choice
                    else:
                        break
                    # end if
                else:
                    break
                # end if
            # end for
            print_choice_dialog()
        # end while
    # end def
     
     
    def parse_xml():
        """
            parsing du fichier .record
        """
        #doc = minidom.parse(......)
        nodes = doc.getElementsByTagName("log start")
        for node in nodes:
            print node.firstChild.nodeValue
        nodes = doc.getElementsByTagName("EXEC start")
        for node in nodes:
            print node.firstChild.nodeValue
     
        #Recuperatiuon des Attributes pour la balise log start
        #doc = minidom.parse(......)
        nodes = doc.getElementsByname("log start")
        for node in nodes:
            if node.attributes.has_key("log"):
                #print node.attributes["log"].value
                row[0]
            if node.attributes.has_key("start"):
                #print node.attributes["start"].value
                row[1]
            if node.attributes.has_key("severity"):
                #print node.attributes["severity"].value
                row[2]
            if node.attributes.has_key("CMD"):
                #print node.attributes["CMD"].value
                row[3]
     
        #Recuperation des attributes pour la balise EXEC start
        node = doc.getElementsByname("EXEC start")
        for node in nodes:
            if node.attributes.has_key("start"):
                #print node.attributes.has_key("start")
                row[1]
            if node.attributes.has_key("duration"):
                #print node.attributes.has_key("duration")
                row[2]
            if node.attributes.has_key("CMD"):
                #print node.attributes.has_key("CMD")
                row[3]
            if node.attributes.has_key("RESULT"):
                #print node.attributes.has_key("RESULT")
                row[4]
     
     
    def csv():
        """
            génération fichier csv avec le dialecte d'excel
        """
        data = [
            [
                "EXEC/ log", "start", "duration/ severity", "CMD / event",
                "RESULT"
            ]
        ]
     
        fname = "cmdb_out.csv"
     
        # NON, voir https://docs.python.org/2.7/library/csv.html
        pass
     
        #~ file = open("fname", "rb")
        #~ try:
            #~ reader = csv.reader(file)
            #~ writer.writerows(data)
            #~ for  row in writer:
                #~ print row[0],row[1],row[2],row[3],row[4]
        #~ finally:
            #~ fd.close()
     
     
     
    def main() :
     
        # NON, voir https://docs.python.org/2.7/library/argparse.html
        pass
     
        #~ if len(sys.argv) == 1 :
            #~ help()
        #~ elif len(sys.argv) >= 2:
            #~ if sys.argv[1] == "-h" or sys.argv[1] == "--help":
                #~ help()
        #~ elif sys.argv[1] == "-p" or sys.argv[1] == "--parsing":
            #~ parse_xml()
        #~ elif sys.argv[1] == "-g" or sys.argv[1] == "--generation cvs":
            #~ csv()
        #~ else :
            #~ research = ""
            #~ for i in sys.argv[1:]:
                #~ research += i
                #~ research += " "
        #~ return 0
     
     
    if __name__ == "__main__":
     
        main()
    Voici que voilà.

    EDIT:

    ci-joints les liens :

    http://legacy.python.org/dev/peps/pep-0008/

    https://docs.python.org/2.7/library/argparse.html

    https://docs.python.org/2.7/library/csv.html

    https://docs.python.org/3/library/xml.dom.minidom.html

    @+.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,
    Dans l'ordre des lignes.

    ligne 27:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    list = [row[0],row[1], row[2], row[3], row[4]]
    list est un terme du langage, utilise un autre nom.
    row est inconnu à ce stade du code.

    ligne 40:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    				\''').format(sys.argv[0]))
    le "\" est de trop, la coloration syntaxique aurait dut te le faire remarquer.

    lignes 114 à 124 nécessitent une indentation.

    ligne 114:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        data = [ ['EXEC/ log', 'start', 'duration/ severity', 'CMD / event','RESULT' ] ]
    La liste extérieure est de trop, voir plus bas.

    ligne 117
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    file = open('fname', 'rb')
    file est un terme du langage, le fichier est ouvert en lecture binaire 'rb', je pense que ton intention est plutôt d'écrire, donc il faut remplacer 'rb' par 'w'

    lignes 119, 120
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	    reader = csv.reader(file)
    	    writer.writerows(data)
    le module csv n'a pas été importé !
    Ton intention est d'écrire, il faut donc utiliser le writer et non pas le reader.

    teste ceci dans une console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> import csv
    >>> with open('cmdb_out.csv', 'w', newline='') as outf:
    ...     wrt = csv.writer(outf, delimiter='\t')
    ...     wrt.writerow(['EXEC/ log', 'start', 'duration/ severity', 'CMD / event','RESULT' ])
    Le délimiteur '\t' est un exemple, tu mets ce que tu veux et tu remarqueras que les données sont une liste et pas une liste dans une liste.

    ligne 124:
    [b]fd[/code] ?

    Pour le reste on ne peut par dire grand chose, le fichier .record n'est pas lu, pas parsé par minidom, pas testable quoi.

  7. #7
    Membre à l'essai Avatar de scrat51
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut suite
    Merci, mais ça ne m'aide pas, y a un paquet de choses. Je ne suis pas développeur et je dois rendre cela rapidement. Tu pourrais me corriger stp ? cela serait sympa. Tu comprends ma logique ?

    Tu peux mettre mon code dans le forum

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par scrat51 Voir le message
    Merci, mais ça ne m'aide pas, y a un paquet de choses. Je ne suis pas développeur et je dois rendre cela rapidement. Tu pourrais me corriger stp ? cela serait sympa. Tu comprends ma logique ?

    Tu peux mettre mon code dans le forum
    Merci de cliquer sur "répondre avec citation" => on ne sait pas à qui vous parlez en ce moment.

  9. #9
    Membre à l'essai Avatar de scrat51
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par tarball69 Voir le message
    Merci de cliquer sur "répondre avec citation" => on ne sait pas à qui vous parlez en ce moment.
    Ok, je disais en général pour tout le monde

Discussions similaires

  1. repise d'une application python
    Par spinakur dans le forum Django
    Réponses: 3
    Dernier message: 24/12/2008, 09h32
  2. Besoins d'aide application telephone mobile
    Par joplass63 dans le forum Java ME
    Réponses: 2
    Dernier message: 03/04/2008, 08h55
  3. Besoin d'aide, application vb6
    Par howcom2890 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 17/03/2008, 22h18
  4. [Debutant] AIDE Application Client/serveur Sqlserver express 2005
    Par TimeForHeroes dans le forum Accès aux données
    Réponses: 2
    Dernier message: 30/10/2007, 07h03
  5. Internationnalisation d'une application Python
    Par leviathan516 dans le forum Général Python
    Réponses: 1
    Dernier message: 22/03/2006, 14h48

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