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 :

tkFileDialog askdirectory probleme


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut tkFileDialog askdirectory probleme
    Bonjour
    je suis débutant en python...dans le code ci-dessous j'ai un soucis avec la fenêtre de sélection de dossier. Elle ne se ferme pas si j'applique la fonction plotting_trials.
    Si j'entre le chemin en dur, pas de soucis.
    Je dois rater qqchose mais je ne vois pas
    Merci à tous !

    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
     
    import pickle
    from matplotlib import pyplot as plt
    import Tkinter, tkFileDialog
     
    root = Tkinter.Tk()
    dirname = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
    dirname_out=dirname + '/results/'
     
    def plotting_trials(trial_number):
        outfile_trial_name=dirname_out + 'trial_name.p'
        outfile_trial_result=dirname_out + 'trial_result.p'
        outfile_trial_labels=dirname_out + 'trial_labels.p'
        outfile_trial_labels_time=dirname_out + 'trial_labels_time.p'
        outfile_trial_x=dirname_out + 'trial_x.p'
        outfile_trial_y=dirname_out + 'trial_y.p'
        outfile_trial_time=dirname_out + 'trial_time.p'
        outfile_trial_saccofinterest=dirname_out + 'trial_sacc_of_interest.p'
        outfile_trial_latency=dirname_out + 'trial_latency.p'
        #loading files
        trial_name = pickle.load(open(outfile_trial_name, 'rb'))
        trial_result=pickle.load(open(outfile_trial_result, 'rb'))
        trial_time=pickle.load(open(outfile_trial_time, 'rb'))
        trial_x=pickle.load(open(outfile_trial_x, 'rb'))
        trial_labels=pickle.load(open(outfile_trial_labels, 'rb'))
        trial_labels_time=pickle.load(open(outfile_trial_labels_time, 'rb'))
        trial_y=pickle.load(open(outfile_trial_y, 'rb'))
        saccofinterest=pickle.load(open(outfile_trial_saccofinterest, 'rb'))
        latency=pickle.load(open(outfile_trial_latency, 'rb'))
        #end loading files
     
        plt.figure(1)
        plt.subplot(211)
        plt.plot(trial_time[trial_number],trial_x[trial_number])
        plt.xlabel('Time [ms]')
        plt.ylabel('Eye Position [V]')
        for t in range(len(trial_labels_time[trial_number])-3): 
            plt.vlines(trial_labels_time[trial_number][t], -5, 5, colors='k')
            if (trial_labels[trial_number][t]=='Fixation'):
                plt.text(trial_labels_time[trial_number][t],4,trial_labels[trial_number][t],color='g')
            if (trial_labels[trial_number][t]=='TrialStart_'):
                plt.text(trial_labels_time[trial_number][t],3,trial_labels[trial_number][t],color='g')
            if (trial_labels[trial_number][t]=='Target'):
                plt.text(trial_labels_time[trial_number][t],3,trial_labels[trial_number][t],color='g') 
            if (trial_labels[trial_number][t]=='Target2'):
                plt.text(trial_labels_time[trial_number][t],2,trial_labels[trial_number][t],color='g') 
            if (trial_labels[trial_number][t]=='EndTrial'):
                plt.text(trial_labels_time[trial_number][t],4,trial_labels[trial_number][t],color='g') 
        plt.vlines(saccofinterest[trial_number], -5, 5, colors='r')
        titre='trial number: ' + str(trial_number)+ ', ' + trial_name[trial_number] + ', ' + trial_result[trial_number] + ' latency: ' + str(latency[trial_number]) + ' ms'
        plt.title(titre)
     
        plt.subplot(212)
        plt.plot(trial_time[trial_number],trial_y[trial_number])
     
        plt.vlines(saccofinterest[trial_number], -5, 5, colors='r')
        for t in range(len(trial_labels_time[trial_number])-3): 
            plt.vlines(trial_labels_time[trial_number][t], -5, 5, colors='k')
            if (trial_labels[trial_number][t]=='Fixation'):
                plt.text(trial_labels_time[trial_number][t],4,trial_labels[trial_number][t],color='g')
            if (trial_labels[trial_number][t]=='TrialStart_'):
                plt.text(trial_labels_time[trial_number][t],3,trial_labels[trial_number][t],color='g')
            if (trial_labels[trial_number][t]=='Target'):
                plt.text(trial_labels_time[trial_number][t],3,trial_labels[trial_number][t],color='g') 
            if (trial_labels[trial_number][t]=='Target2'):
                plt.text(trial_labels_time[trial_number][t],2,trial_labels[trial_number][t],color='g') 
            if (trial_labels[trial_number][t]=='EndTrial'):
                plt.text(trial_labels_time[trial_number][t],4,trial_labels[trial_number][t],color='g')      
        plt.xlabel('Time [ms]')
        plt.ylabel('Eye Position [V]')
        plt.show()
     
     
    plotting_trials(11)

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

    On ne peut pas prendre votre code et l’exécuter pour reproduire quoi que ce soit...

    Et les opérations de base fonctionnent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import tkinter as tk
    import matplotlib.pyplot as plt
    from tkinter import filedialog
     
    root = tk.Tk()
    name = filedialog.askdirectory()
    plt.plot([1,2,3,4])
    plt.ylabel('numbers')
    plt.show()
    Ok, c'est en 3.3 mais mon propos est de vous inviter a "reduire" votre code a un exemple sur lequel on puisse travailler.

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

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut
    autant pour moi...voici un exemple très simplifié qui me donne le meme problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import Tkinter,tkFileDialog
    import matplotlib.pyplot as plt
     
    root = Tkinter.Tk()
    dirname = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
    plt.plot([1,2,3,4])
    plt.ylabel('numbers')
    plt.show()
    Merci,
    PS: je travaille en 2.7

  4. #4
    Expert confirmé

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

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

    Ton exemple simplifié fonctionne correctement avec Python 2.7.3 (Linux)

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut
    je suis sur mac
    qqn peut tester de son côté sur mac ?
    Encore merci

  6. #6
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Ton exemple simplifié fonctionne correctement avec Python 2.7.2 (Windows)

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut
    bon...après 2000 tentatives ça marche...
    pour la petite histoire :
    je suis sur mac (10.9) avec eclipse comme environnement.
    mac à l'air de mal gérer les fenêtres...si je mets eclipse en plein écran, la boite de dialogue apparait dans un autre bureau (normal!)...la je fais mon choix et rien ne se passe...il faut que je change de bureau puis que je revienne faire le même choix pour que la suite du programme (ie un graph) se fasse.

    Si quelqu'un a rencontré la même mésaventure...
    Ma solution = virtualbox + ubuntu + eclipse et là tout va bien

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2011, 09h26
  2. récupérer le "tkFileDialog.askdirectory"
    Par santaflam dans le forum Tkinter
    Réponses: 6
    Dernier message: 17/09/2007, 13h03
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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