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 :

Doublons en sortie


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Par défaut Doublons en sortie
    Bonjour,

    Je suis sur une API Red Hat Satellite 5.5 (voir ici) que j'utilise pour implémenter plusieurs scripts python.

    Voici mon code source :

    test.py

    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
     
    #!/usr/bin/python
    # -*-coding:Latin-1 -*
    # Import lib
    import xmlrpclib
    import sys
    import re
    import datetime
    import sys
    from time import mktime, strptime
     
    # Satellite connection
    S_URL = "http://monSite.com"
    S_LOGIN = "admin"
    S_PASSWORD = "admin"
    client = xmlrpclib.Server(S_URL, verbose=0)
    key = client.auth.login(S_LOGIN, S_PASSWORD)
     
    # Je liste mes stations 
    list_systems = client.system.listSystems(key)
    for system in list_systems:
    # Nom de la station
     SYSNAME = system["name"]
     list_id = client.system.getId(key,SYSNAME)
    # ID
     id = list_id[0]['id']
     # Je liste mes fichiers
     list_files = client.system.config.listFiles(key,id,1)
     for element in list_files:
     # Tous mes fichiers
      PATH = element["path"]
    # Seulement les fichiers sudoers et users.allow  
      if PATH == "/etc/sudoers" or PATH == "/etc/centrifydc/users.allow" :
       # Resultat en sortie "
       print "%s : %s : %s : %s" % (SYSNAME, id, PATH, PATH)
     
     
    client.auth.logout(key)
    Voici mon resultat :
    Nom : Screenshot.png
Affichages : 123
Taille : 3,5 Ko


    J'aimerais savoir comment fait on pour retirer les doublons puis obtenir un resultat de cette façon :

    NomStation : IdStation : /etc/sudoers/ : /etc/centrifydc/users.alow


    Quelqu'un aurait un idée svp?

    Cdt,

  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,

    C'est cohérent avec ce qui est écrit à la ligne 35:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      print "%s : %s : %s : %s" % (SYSNAME, id, PATH, PATH)
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Par défaut
    Oui c'est cohérent pourquoi?

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 567
    Par défaut
    Salut

    Pourtant, tout est dans la réponse de - W.
    Tu demande imprimer deux fois la variable PATH.
    Remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "%s : %s : %s" % (SYSNAME, id, PATH)
    ça devrait aller mieux.

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    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
    Citation Envoyé par Taylor08 Voir le message
    Oui c'est cohérent pourquoi?
    C'est votre code: impossible de répondre à votre place.
    Et le post d'e-ric, montre que c'est quand même trivial à corriger, non?

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

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Par défaut
    Alors justement le fait de mettre deux fois la variable PATH me permettra de voir si la station contient le fichier "etc/sudoers" et le fichier "etc/centrifydc/user.allow/" aussi

    C'est à dire dans l'idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     PATH = element["path"]
    # Seulement les fichiers sudoers et users.allow  
      if PATH == "/etc/sudoers" or PATH == "/etc/centrifydc/users.allow" :
       # Resultat en sortie "
       print "%s : %s : %s : %s" % (SYSNAME, id, PATH, PATH)
     
    #  print "%s : %s : %s : %s" % (SYSNAME, id, PATH, PATH)
    #  si la station a ces deux fichiers alors le résultat  
    #  en sortie serait  : NomStation (SYSNAME) : IdStation (id) : /etc/sudoers (PATH) : /etc/centrifydc/users.allow (PATH)


    Maintenant ayant suivi vos conseils je n'ai quand même pas eu la réponse que je voulais car j'ai toujours ce doublon qui me gène :

    Nom : Screenshot-1.png
Affichages : 113
Taille : 2,6 Ko

    Au final ce que je souhaiterais, c'est d'arriver à un resultat comme ceci : NomStation : IdStation : /etc/sudoers : /etc/centrifydc/users.allow

    Sur une seule même ligne avec aucun doublon.

  7. #7
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 567
    Par défaut
    Y a du boulot... Commence par lire les docs et un peu les bases de la programmation.
    Une variable ne contient qu'une seule valeur qui peut être simple (nombre, chaîne) ou composée (liste), pour ton problème une liste devrait t'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     PATH = element["path"]
    # Seulement les fichiers sudoers et users.allow  
      liste_de_paths = ["/etc/sudoers", "/etc/centrifydc/users.allow"]
      if PATH in liste_de_paths :
       # Resultat en sortie "
       print "%s : %s : %s" % (SYSNAME, id, " : ".join(liste_de_paths))
     
    #  print "%s : %s : %s : %s" % (SYSNAME, id, PATH, PATH)
    #  si la station a ces deux fichiers alors le résultat  
    #  en sortie serait  : NomStation (SYSNAME) : IdStation (id) : /etc/sudoers (PATH) : /etc/centrifydc/users.allow (PATH)
    Ce qui ne change pas le fait que ta variable PATH ne prendra qu'une valeur à la fois. Quel est l'intérêt d'afficher les deux valeurs alors qu'une seule a du sens ?

    Pour les doublons, il faut peut-être analyser ce que retournent les instructions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    list_systems = client.system.listSystems(key)
    for system in list_systems:
    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

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

Discussions similaires

  1. Doublons en sortie d'un tmap
    Par maubarr dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 02/05/2014, 11h47
  2. Rediriger le plux de sortie
    Par Groove dans le forum C
    Réponses: 5
    Dernier message: 17/04/2003, 17h16
  3. tri a bulle sans les doublons
    Par comme de bien entendu dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/03/2003, 16h29
  4. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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