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 :

tkinter et filedialog en Python 3.3


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 27
    Points
    27
    Par défaut tkinter et filedialog en Python 3.3
    Bonsoir,
    Pour mon 1er programme (code ci-dessous), j'ai utilisé des exemples recueillis sur internet et dans le livre "Python 3".
    Je suis sous windows XP et espère utiliser le prg sous Debian et sous Ubuntu.

    Sous IDLE, le prg fonctionne. Lancé en direct, il indique pour filedialog : "Attribure Error : 'module' objects has no attribute 'filedialog'.

    Après une après-midi de recherches, j'ai trouve la commande 'dir' pour lister les attributs de tkinter. En effet, filedialog n'y figure pas.

    Donc, deux questions :
    1 - Pourquoi IDLE installé automatiquement par python 3.3 accepte l'exécution du prg alors qu'il plante en direct, SVP?
    2 - Quelle est l'attribut de tkinter qu'il faut utiliser? Je n'ai pas trouver.

    Merci d'avance pour votre aide
    Bonne soirée
    Luc

    Prg :
    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
    ####################################################################################
    #      Programme Python 3                                                          #
    #      Liste fichiers.py                                                           #
    #      Nombre et cumul taille des fichiers dans un répertoire défini (par dossier) #
    ####################################################################################
     
    # Pour un répertoire donné, le prg liste les dossiers et sous-dossiers
    # en indiquant, pour chacun, le nombre de fichiers contenus et leurs tailles cumulées
    #
    # Un dernier affichage donne, pour le répertoire indiqué
    #          - le nombre total de fichiers
    #          - le cumul des tailles des fichiers
    #          - le nombre total de dossiers (y compris la racine si des fichiers ne sont pas dans des dossiers)
     
     
    ################################
    #   Importation des modules
     
    import os
     
    import tkinter
     
     
    ################################
    #   Définition locale des fonctions
     
    def choixrepertoire():                               # Sélection du répertoire
        global rep
        print ("demande rep")
        rep = tkinter.filedialog.askdirectory(initialdir="/", title='Choisissez un repertoire')
        if len(rep) > 0:
            print ("vous avez choisi le repertoire : "+(rep))
            traitementRepertoire(rep)
        return
     
     
     
    def traitementRepertoire(path):               # Traitement du répertoire
     
        repertoire = "***"                                    # Initialisation des variables
        nombrerepertoire = 0
        taillerepertoire = 0
        nombredossiers = 0
        sousRepertoire = "***"
        nombre = 0
        taille = 0 
     
        for root, dirs, files in os.walk(path):   # Boucle pour parcourir l'arborescence
            if sousRepertoire != root :                          # Changement de dossier
                if sousRepertoire !="***":
                    nombredossiers = nombredossiers + 1
                    print ("    ***** Pour le dossier "+(sousRepertoire)+" Nombre "+str(nombre)+"  taille : "+str(taille))
                print (" ")
                sousRepertoire = root
                nombre = 0
                taille = 0
     
     
     
            for i in files:                                           # Traitement des fichiers
                nombre = nombre + 1
                taillefichier = os.path.getsize(os.path.join(root, i))
                taille = taille + taillefichier
                taillerepertoire = taillerepertoire + taillefichier
                nombrerepertoire = nombrerepertoire + 1
     
        nombredossiers = nombredossiers + 1                                    # Fin, donc édition des derniers éléments
        print ("    ***** Pour le dossier : "+(sousRepertoire)+"  nombre : "+str(nombre)+"   taille : "+str(taille))
     
        print (" ")	
        print ("======= Pour le répertoire "+(path))
        print ("                                     Nombre       : "+str(nombrerepertoire))
        print ("                                     Taille      : "+str(taillerepertoire))
        print ("                                     Nb dossiers : "+str(nombredossiers))
        print (" ")	
        print ("TERMINE ******")
        return
     
     
     
    ################################
    #  Corps principal du programme
     
     
    fen1 = tkinter.Tk()
    tex1 = tkinter.Label(fen1, text='Répertoire des sources')
    tex1.pack()
     
    rep =''
    btnchoixrep = tkinter.Button(fen1, text='Choississez le répertoire SVP', command = choixrepertoire)
    btnchoixrep.pack()
     
    btnquitter = tkinter.Button(fen1, text='Quitter', command = fen1.destroy)
    btnquitter.pack()
    fen1.mainloop()

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Citation Envoyé par vieux60ans Voir le message
    1 - Pourquoi IDLE installé automatiquement par python 3.3 accepte l'exécution du prg alors qu'il plante en direct, SVP?
    2 - Quelle est l'attribut de tkinter qu'il faut utiliser? Je n'ai pas trouver.
    1) Parce que IDLE est écrit en tkinter.
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import tkinter.filedialog
    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 27
    Points
    27
    Par défaut
    Bonsoir,

    PauseKawa : mille mercis pour tes réponses à mes deux questions. Le prg fonctionne nickel et m'a déjà rendu service

    Bon, maintenant, je retourne m'instruire : utilisation de ce prg sous Linux.

    Dans un deuxième temps : imprimer la liste de résultats. Pour l'instant, je fais un copier-coller dans wordpad.

    Vive Python et les membres de ce forum

    Luc

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

Discussions similaires

  1. [Tkinter] Vitesse d'éxécution : Python 3 sous Windows vs Python 2 sous Mac
    Par VilBoub dans le forum Programmation multimédia/Jeux
    Réponses: 0
    Dernier message: 25/10/2013, 13h28
  2. Conteneurs en Python Tkinter ?
    Par tuxout dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/04/2007, 19h46
  3. [Tkinter]Evenement on_close en python?
    Par tlemcenvisit dans le forum Tkinter
    Réponses: 1
    Dernier message: 17/11/2006, 09h33
  4. [Tkinter] Onglet en Python
    Par Telimektar dans le forum Tkinter
    Réponses: 4
    Dernier message: 14/04/2006, 08h21
  5. [Tkinter] Python sous Linux
    Par PMdomine dans le forum Tkinter
    Réponses: 7
    Dernier message: 06/03/2006, 21h56

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