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 :

Stocker un print dans une variable ?


Sujet :

Python

  1. #1
    Membre actif
    Profil pro
    Futur administrateur systèmes
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Futur administrateur systèmes

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut Stocker un print dans une variable ?
    Bonjour

    J'ai besoin de votre aide pour éclaircir un point dans mon script en Python.

    J'ai pour objectif de créer une interface permettant d'afficher le contenu d'un CSV en python.

    J'ai une arborescence de ce type ( Un repertoire par serveur, avec des sous repertoires par mois qui contienent un csv ) :

    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
    Server1:
      - 2019-10
          - data1.csv
      - 2019-11
          - data2.csv
      - 2019-12
          - data3.csv
      - 2020-01
          - data4.csv
     
    Server2:
      - 2019-10
        - data5.csv
      - 2019-11
        - data6.csv
      - 2019-12
        - data7.csv
      - 2020-01
        - data8.csv
     
    Server3:
      - 2019-10
        - data9.csv
      - 2019-11
        - data10.csv
      - 2019-12
        - data11.csv
      - 2020-01
        - data12.csv
    Les CSV ressemblent à :
    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
    Date,Value
    2020-01-21,103421
    2020-01-21,103422
    2020-01-21,103423
    2020-01-21,103424
    2020-01-22,103422
    2020-01-22,103423
    2020-01-22,103424
    2020-01-22,103425
    2020-01-23,103423
    2020-01-24,103424
    2020-01-25,103425
    2020-01-26,103426
    2020-01-27,103427
    2020-01-28,103428

    J'ai essayé de faire ça :

    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
    from ipywidgets import interact, Dropdown
    from ipywidgets import *
    import pandas as pd
    import os
    import sys
     
     
    #################### Dropdown avec la liste des servers ####################
     
    Server = os.listdir("/home/tim/Bureau/Servers/")
    test = widgets.Dropdown(options = (Server))
     
     
    #################### Dropdown avec la liste des dates ####################
     
    Date = ['2019-10', '2019-11', '2019-12', '2020-01']
    test2 = widgets.Dropdown(options = (Date))
     
     
     
    @interact(Servers = Server, Dates = Date)
    def print_all(Servers, Dates):
        Path ="/home/tim/Bureau/Servers"
        print(Path,Servers,Dates,"", sep="/")
    Ce qui donne :
    Nom : Screenshot from 2020-01-29 15-17-58.png
Affichages : 584
Taille : 7,4 Ko

    Si je choisi une autre valeur dans les dropdowns, l'input change comme souhaité.


    Maintenant que j'ai mon chemin, j'aimerai pouvoir faire un troisième dropdown qui listerait le contenu se trouvant dans /home/tim/Bureau/Servers/Server2/2019-12/ pour continuer de suivre mon exemple. Mais comment récupérer mon print dans une variable pour faire quelque chose du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ma_variable = print(Path,Servers,Dates,"", sep="/")
    CSV = os.listdir("ma_variable")
     
    CSV_list = widgets.Dropdown(options = (CSV))
    Ce qui me permettrait de récupérer le chemin complet vers mon .csv que je stockerai dans une variable foo qui me permettrait ensuite de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    df = pd.read_csv("foo")
    df.head()
    Pour afficher mon csv.


    Quelqu'un pourrait m'indiquer comment faire ça ?


    Merci d'avance !

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 305
    Par défaut
    Salut,

    Pourquoi diable avec un print ? print ne retourne rien.

    Utilise simplement os.path.join().

  3. #3
    Membre actif
    Profil pro
    Futur administrateur systèmes
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Futur administrateur systèmes

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    Hello !

    Merci pour cette indication. Je ne connaissais pas cette méthode pour manipuler les chemins.

    De ce fait, cette méthode répondant à ma question, dernière chose pour être totalement débloqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @interact(Servers = Server, Dates = Date)
    def print_all(Servers, Dates):
        Path ="/home/tim/Bureau/Servers"
        CSV = os.path.join(Path,Servers,Dates,'')
     
        test3 = widgets.Dropdown(options = (CSV))
        display(CSV)
        display(test3)

    Me renvoi cela :

    Nom : Screenshot from 2020-01-29 20-17-33.png
Affichages : 583
Taille : 9,0 Ko

    Ce n'est pas le contenu de CSV qui est afficher dans le menu, mais littéralement le chemin. Quel est le moyen pour palier à cela ?

    Merci encore !

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

    Citation Envoyé par Ezzmazz Voir le message
    Quel est le moyen pour palier à cela ?
    Ouvrir la documentation de .Dropdown pour vérifier ce qu'accepte le paramètre "options" serait un bon début.
    Vu ce que çà affiche, c'est probablement un itérable...

    Citation Envoyé par Ezzmazz Voir le message
    Ce n'est pas le contenu de CSV qui est afficher dans le menu
    Certes mais le nom du fichier est juste une chaine de caractères, c'est un itérable .Dropdown en fait ce qu'il peut.
    Mais si vous vouliez que çà affiche les lignes contenues dans le fichiers, il va falloir aller les lire...

    Citation Envoyé par Ezzmazz Voir le message
    J'ai pour objectif de créer une interface permettant d'afficher le contenu d'un CSV en python.
    Programmer, c'est 70% du temps passé à lire des documentations "intelligement" au sens où il faut passer du temps à tester pour s'assurer qu'on a bien compris ce que çà raconte et qu'on est capable d'en faire quelque chose. C'est bien d'avoir des objectifs ambitieux mais il faut vous en donner les moyens en prenant le temps d'apprendre plutôt qu'espérer qu'on fera le boulot pour vous.

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

Discussions similaires

  1. Stocker plusieurs valeurs dans une variable Session
    Par PrinceMaster77 dans le forum Langage
    Réponses: 3
    Dernier message: 05/01/2010, 11h04
  2. Stocker des balises dans une variable
    Par floran974 dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2009, 14h38
  3. Stocker du html dans une variable.
    Par Xunil dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/05/2009, 20h30
  4. [MIPS] [inline assembleur] Stocker un mot dans une variable
    Par wacho dans le forum Autres architectures
    Réponses: 0
    Dernier message: 02/01/2009, 16h23
  5. Stocker un noeud dans une variable
    Par Devotion dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 23/09/2004, 17h02

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