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 :

Probleme de récupération de données pour les intégrer dans une Entry tkinter [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien electronique
    Inscrit en
    Juin 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien electronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 10
    Par défaut Probleme de récupération de données pour les intégrer dans une Entry tkinter
    Bonjour,

    Je me heurte à une petite difficulté que je n'arrive pas à résoudre :

    Nom : schema.PNG
Affichages : 355
Taille : 33,7 Ko

    J'ai un fichier (GUI) contenant une instruction d'ouverture de fichier et qui viens ensuite insérer les infos dans un widget Text.

    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
    ###### FONCTION OUVERTURE DE FICHIER ######
    def openfile():
        global cmd_file
        global log_data
        global logname
        cmd_file = filedialog.askopenfilename(title="Open SMW Log file", filetypes=(("Text Files", "*.log"),))
        filename = os.path.basename(cmd_file)
        path_entry.insert(END, cmd_file)
        cmd_file = open(cmd_file, 'r')
        log_data = cmd_file.read()
        log_area.insert(END, log_data)
        logname = (os.path.splitext(filename.upper())[0])
        serialnumber.set(str(logname))
        print(cmd_file)
     
    serialnumber = StringVar()
    logname =''
    Dans un autre fichier Variables.py, j'ai des fonctions de recherche sur le texte ouvert précedemment :

    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
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
    import tkinter as tk
    from tkinter import *
    from tkinter import filedialog
     
    cmd_file = ''
    logdata = ''
    upsdate = ''
    upsrating = ''
    upstype = ''
    #ups_date = StringVar()
    #ups_rating = StringVar()
    #ups_type = StringVar()
    #ups_date.set(str(upsdate))
    #ups_rating.set(upsrating)
    #ups_type.set(upstype)
     
    target = "UPS date (MM-dd-yyyy HH:mm) = "
    target2 = "Nominal system rating = "
    target3 = "UPS with IBS System configuration"
     
    def upsdateread():
        with open(cmd_file, 'r') as datafile:
            linenum = 0
        for line in datafile.readlines():
            linenum += 1
            if target in line:
                    upsdate = line[30:46]
                    print(upsdate)
     
    def upsratingread():
        with open(cmd_file, 'r') as datafile:
            linenum = 0
        for line in datafile.readlines():
            linenum += 1
            if target2 in line:
                    upsrating = line[24:46]
                    print(upsrating)
     
    def upstyperead():
        with open(cmd_file, 'r') as datafile:
            linenum = 0
        for line in datafile.readlines():
            linenum += 1
            if target3 in line:
                    upstype = line[0:46]
                    print(upstype)
    J'ai mis les stringvar() et les .set en attente car apres plusieurs essais entre les deux fichiers je n'ai rien réussis à faire de concret..

    Je pense que le probleme viens du fait que hors de la fonction openfile() le contenu du fichier n'est pas disponible puisque stocker dans mon widget text.

    Comment pourrais-je faire pour récupérer ces informations ?

    En vous remerciant par avance

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

    Citation Envoyé par Highness023 Voir le message
    J'ai mis les stringvar() et les .set en attente car apres plusieurs essais entre les deux fichiers je n'ai rien réussis à faire de concret..
    Pourquoi deux fichiers scripts alors que vous pourriez tout avoir dans un seul et que ce serait sans doute plus simple ?

    Citation Envoyé par Highness023 Voir le message
    j'ai des fonctions de recherche sur le texte ouvert précedemment
    Vous lisez un fichier pour l'insérer dans le widget Text et dans un autre code, vous lisez le même fichier (mais ça pourrait être un autre) pour faire je ne sais quoi...
    Quel est le rapport entre les deux et comment le réaliser? Moi je dirais que c'est juste le pourquoi on apprend à programmer: quand on sait pas, on est bien embêté mais c'est pas pour rien qu'on écrit des tutos... Ca vous demande un certain temps et c'est impossible d'y répondre en quelques minutes dans un forum.

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

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut !

    Comme dit Wiz, avoir 2 scripts ne va pas te simplifier la vie, et là ça semble inutile...

    De plus tes fonctions de recherche semblent être optimisables :
    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
    >>> def toto():    
    ...     with open(cmd_file, 'r') as datafile:
    ...         for i, line in enumerate(datafile.readlines()):
    ...             if target in line:
    ...                 upsdate = line[30:46]
    ...                 print(i, upsdate)
    ...             elif target2 in line:
    ...                 upsrating = line[24:46]
    ...                 print(i, upsrating)
    ...             elif target3 in line:
    ...                 upstype = line[0:46]
    ...                 print(i, upstype)
    ...     return upsdate, upsrating, upstype
    ... 
    >>> upsdate, upsrating, upstype = toto()
    Ou si tes variables sont globales (un cours au hasard : https://reeborg.ca/docs/fr/variables/scope.html):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> def toto():
    ...     global upsdate, upsrating, upstype
    ...     with open(cmd_file, 'r') as datafile:
    ...         for i, line in enumerate(datafile.readlines()):
    ...             if target in line:
    ...                 upsdate = line[30:46]
    ...                 print(i, upsdate)
    ...             elif target2 in line:
    ...                 upsrating = line[24:46]
    ...                 print(i, upsrating)
    ...             elif target3 in line:
    ...                 upstype = line[0:46]
    ...                 print(i, upstype)

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien electronique
    Inscrit en
    Juin 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien electronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 10
    Par défaut
    Bonjour,

    Moi je dirais que c'est juste le pourquoi on apprend à programmer: quand on sait pas, on est bien embêté mais c'est pas pour rien qu'on écrit des tutos... Ca vous demande un certain temps et c'est impossible d'y répondre en quelques minutes dans un forum.
    Quand on ne sait pas on apprend. Quand je ne sais pas je cherche, je n'arrive pas à faire ce que je veux je demande de l'aide.
    Et si les tutos faisaient tout, et ça se saurais. Si tu ne veux pas m'aider, pas de problème.

    Pourquoi deux fichiers scripts alors que vous pourriez tout avoir dans un seul et que ce serait sans doute plus simple ?
    Tout empiler dans un fichier ? Je sais peut être pas programmer mais sur la base je voulais des petits segments pas trop dur à débeugger, pour développer ou réparer mon logiciel en cas de soucis.
    Apres j'entend que ce serait plus simple, et si il faut je le ferais.

    Vous lisez un fichier pour l'insérer dans le widget Text et dans un autre code, vous lisez le même fichier (mais ça pourrait être un autre) pour faire je ne sais quoi...
    Je charge un fichier texte que j'affiche dans mon programme, et je recherche des éléments dans ce fichier par la même occasion que je veux ensuite renvoyer dans un objet entry.
    Je cherche simplement à trouver comment faire.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Citation Envoyé par Highness023 Voir le message
    Quand on ne sait pas on apprend. Quand je ne sais pas je cherche, je n'arrive pas à faire ce que je veux je demande de l'aide.
    Et si les tutos faisaient tout, et ça se saurais. Si tu ne veux pas m'aider, pas de problème.
    A la sortie d'un apprentissage via les tutos, vous devriez savoir réaliser de tels petits projets sans avoir à chercher ailleurs que dans les chapitres de votre tuto préféré ou dans le code des exercices proposés.

    En insistant à vous mettre le nez dans les tutos, je vous évite d'abandonner votre projet dans quelques jours dégoûté par les difficultés rencontrées et du temps passé à tourner en rond.

    Si vous voulez apprendre à programmer commencez par le début, et si, sans formation, vous voulez réaliser un projet particulier embauchez un codeur. Dit autrement, donnez vous les moyens de vos ambitions!

    Citation Envoyé par Highness023 Voir le message
    Tout empiler dans un fichier ? Je sais peut être pas programmer mais sur la base je voulais des petits segments pas trop dur à débeugger, pour développer ou réparer mon logiciel en cas de soucis.
    Que ce soit dans un ou plusieurs fichiers ne change pas grand chose: on écrit une fonction qui appelle les fonctions à tester... ignorant les autres. En attendant vous vous créez des problèmes que pas grand monde saura résoudre car votre code marche sur la tête.



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

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien electronique
    Inscrit en
    Juin 2022
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien electronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 10
    Par défaut
    Si c'est pour répondre des choses comme ça je vous invite à ne plus répondre vous me faites perdre mon temps.

    Bien cordialement.

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Citation Envoyé par Highness023 Voir le message
    Si c'est pour répondre des choses comme ça je vous invite à ne plus répondre vous me faites perdre mon temps.
    Croyez vous que beaucoup perdront le leur à vous rabâcher ce que vous devriez avoir appris dans n'importe quel tuto avant de demander de l'aide?

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

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/04/2018, 14h22
  2. récupération des données pour les afficher dans une ListView
    Par khoukha1 dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 14/06/2012, 14h59
  3. Réponses: 2
    Dernier message: 10/09/2007, 16h40
  4. Réponses: 4
    Dernier message: 22/05/2007, 14h42
  5. Réponses: 3
    Dernier message: 11/04/2007, 14h01

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