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

Tkinter Python Discussion :

Global name d'une variable et organisation d'un script


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Global name d'une variable et organisation d'un script
    Bonjour,


    J'ai commencé récemment à apprendre la programmation sur python dans le cadre de l'automatisation des tâches liées à mon boulot.
    Aujourd'hui mon script est la suite de 3 petits scrypts que j'ai écris, qui me permettent d'effacer un dossier, d'aller sur internet et télécharger des fichiers puis de les copier coller dans un autre fichier. Pour rentre l'application utilisable pour mes collègue j'ai pensé utiliser tkinter pour récupérer une entry qui va me permettre de rendre le programme fonctionnel sur n'importe quel pc.
    Mes 3 fonctions marchent parfaitement ensemble, le problème vient de tkinter je pense.
    Je pense que mon script est très brouillon et mal organisé. Mais surtout je n'arrive pas à récupérer la variable de l'entry. Je suis sous Python 2.7 et je tourne un peu en rond.
    Je fais donc appel à vous pour me guider vers une façon plus propre de coder et surtout pour résoudre mon problème de global name 'mavariable' is not defined.

    Merci d'avance,

    Kair0

    Voici mon code :

    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
     
    from Tkinter import *
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re, os, shutil
     
     
     
    master = Tk()
     
    Label(master, text="UID: ").grid(row=0, sticky=W)
     
    entry = Entry(master)
    entry.grid(row=0, column=1)
     
     
    b1 = Button(master, text="RUN", command=maestro)
    b1.grid(row=2, column=1)
     
    mainloop()
     
     
     
     
     
    def partie1():
        folder = "C:\Users\\" + UID + '\Downloads'
            for the_file in os.listdir(folder):
                file_path = os.path.join(folder, the_file)
                try:
                    if os.path.isfile(file_path):
                        os.unlink(file_path)
                except Exception as e:
                    print(e)
     
     
     
    def setUp():
            driver = webdriver.Chrome(executable_path=r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\2 - Projets\COBALT\COBALT_EXCEL\chromedriver')
            driver.implicitly_wait(30)
            base_url = "https://google.com/"
            driver.get("https://dmt.finance.*****/*****/dg/index.jsp")
            driver.find_element_by_id("ab-login-dialog-username").click()
            driver.find_element_by_id("ab-login-dialog-username").clear()
            driver.find_element_by_id("ab-login-dialog-username").send_keys("******")
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password:'])[1]/following::input[1]").click()
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password:'])[1]/following::input[1]").clear()
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password:'])[1]/following::input[1]").send_keys("****")
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Password:'])[1]/following::span[1]").click()
            time.sleep(5)
            driver.find_element_by_id("documentLibrary").click()
            time.sleep(5)
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='... more'])[1]/following::i[1]").click()
            driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='... more'])[17]/following::i[1]").click()
            driver.find_element_by_xpath("//a[starts-with(normalize-space(text()),'Excel_Data_Controls.')]").click()
            driver.find_element_by_xpath("//a[starts-with(normalize-space(text()),'Excel_Group_Data_Dictionary.')]").click()
            driver.find_element_by_id("abLogoutLink").click()
            driver.quit()
     
     
    def partie3():
            path = "C:\Users\\" + UID + '\Downloads'
     
            files = os.listdir(path)
            doclist=[]
            for name in files:
                if name !='desktop.ini':
                    doclist.append(name)
            docex1 = doclist[0] 
            docex2 = doclist[1]
     
            path2 = r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\3 - Documentation\3.6 Dictionnaire\RADAR\Sourcing DICOGLOB' 
            files = os.listdir(path2)
            doclist2=[]
            for name in files:
                doclist2.append(name)
            docex3 = doclist2[1] 
            docex4 = doclist2[0]
     
            if docex1 == docex4:
               print('true')
            else:
                shutil.copy('C:\Users\c92434\Downloads'+'/'+docex1,r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\3 - Documentation\3.6 Dictionnaire\RADAR\Sourcing DICOGLOB')   
                os.unlink(os.path.join(r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\3 - Documentation\3.6 Dictionnaire\RADAR\Sourcing DICOGLOB',docex4))
     
            if docex2 == docex3:
                print('true')
            else:    
                shutil.copy('C:\Users\c92434\Downloads'+'/'+docex2,r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\3 - Documentation\3.6 Dictionnaire\RADAR\Sourcing DICOGLOB')   
                os.unlink(os.path.join(r'\\PARDMP14SH\FCPTA2\80-72_MO_OUTCTR\OUTILS DE CONTROLE NEW\EXTRA\3 - Documentation\3.6 Dictionnaire\RADAR\Sourcing DICOGLOB',docex3))
     
    def maestro():
     
     
        UID = entry.get()
        partie1()
        setUp()
        partie3()  
        rquit()
     
     
    def rquit():
        root.destroy()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Salut,

    Citation Envoyé par Kair0 Voir le message
    Je fais donc appel à vous pour me guider vers une façon plus propre de coder et surtout pour résoudre mon problème de global name 'mavariable' is not defined.
    Il n'y a pas de variable nommée 'mavariable' dans votre code.
    Après si on lit votre code, on peut supposer qu'il s'agit de "maestro" et que çà plante à la ligne 21: la fonction "maestro" et la variable associée étant définie bien plus tard. Si tel est le cas, vous devriez être capable de corriger cela par vous même car vous êtes supposé avoir un peu appris à programmer avec Python avant de poster et si ce n'est pas le cas, vous allez avoir pleins de soucis avec tkinter...

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Bonjour et merci pour votre réponse,

    Ma variable est la variable UID. Maestro est la fonction qui permet de lancer 3 autres fonctions.

    Cordialement,

    Kair0

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Citation Envoyé par Kair0 Voir le message
    Ma variable est la variable UID. Maestro est la fonction qui permet de lancer 3 autres fonctions.
    Désolé mais fonctions et portée des variables sont des notions de base que vous devez apprendre par vous même avec un tuto.

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

Discussions similaires

  1. Affectation d'une variable depuis l'extérieur du script
    Par johannis dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 13/04/2012, 13h46
  2. Réponses: 3
    Dernier message: 18/12/2008, 07h29
  3. Définir une variable d'environnement depuis un script
    Par pmithrandir dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 05/11/2008, 11h24
  4. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11

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