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 :

Boite de dialogue choix de fichier python


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Par défaut Boite de dialogue choix de fichier python
    Bonjour,

    Alors voilà, je suis tout nouveau sur python, je n'en ai jamais fait.

    J'ai reçu un programme python d'un collègue et je souhaiterais l'automatiser car il ne lit qu'un fichier à la foix.
    J'ai donc pensé à intégrer dans son programme une dialogue box qui m'afficherait tout les fichier présent dans un dossier situé à une adresse spécifiée dans le programme et se terminant par le meme suffixe.
    Ensuite mon but est de choisir dans cette liste le fichier qui m'intéresse, que le programme python récupère son nom et que je puisse ainsi par la suite faire tourner le programme avec ce nom.

    Est ce que quelqu'un pourrait m'aider?.
    Merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Pour utiliser une dialogue Box faut avoir des connaissances minimales en python. Avec quel framework travailles-tu ? Tkinter ?

    Tu as déjà lu de la documentation pour essayer de comprendre ? Sinon tu risques de ne pas comprendre nos réponses...

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Par défaut
    Effectivement, je regarde un peu sous le forum et je suis completement perdu lol.

    Je suis programmeur matlab à la base python c'est l'inconnu pour moi.

    je ne sais même pas ce que tu entends par framework.

    En fait pour simplifer j'ai un programme qui tourne en allant chercher un fichier dans un dossier....je met la ligne ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import mice
    import os
     
    def main():
     
        mice.debugPrintString("Debut passage dans le module chargerTrajectoire")
     
        #fichierTrajectoires = "d:/LocalData/a178905/TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt"
        fichierTrajectoires = "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario\TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt"
        #fichierTrajectoires = "d:\Public\TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt"
     
     
        fid = open(fichierTrajectoires, 'r')
    Tout celà marche bien jusqu'à présent. Je comprend un peu le script. je charge le fichier avec "fichier trajectoire" et je l'ouvre avec fid. jusque là c'est pareil que Matlab.

    Mon problème est que ça marche bien pour un test sur mon fichier "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario\TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt" mais TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt n'est pas le seul fichier que je veux traiter. Pour ça j'ai besoin qu'il me demande de choisir mon fichier avant ouverture.

    Là est l'étendue de mon soucis.

    Je prends toute méthode ou conseil possible

    Merci

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Une dialogue box comme tu l'indiques dans ton premier message est un objet graphique, tu as donc deux solutions, soit
    • utiliser un framework graphique (tkinter, wxPython, PyGtk, PyQt, ...)
    • utiliser les objets graphiques de ton OS (compliqué, non portable, ...)


    Il faut donc déjà commencer par savoir ce que tu souhaites.

    Ça semble quand même ultra compliqué de donner un code dont tu n'en comprendras pas les tenants et les aboutissants.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Par défaut
    Salut Fred.

    Donc d'après ce que tu dis le plus simple serait d'utiliser Tkinter ok.

    Je dois alors faire appel à Tkinter avec un import.

    C'est la solution pour laquelle je vais opter. Je pensais quand même qu'il yavait plus simple.

    Puis je avoir un peu d'aide sur les lignes à coder?

    Je continue à chercher de mon coté

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Citation Envoyé par accessbeginner Voir le message
    Donc d'après ce que tu dis le plus simple serait d'utiliser Tkinter ok.
    Je n'ai pas donné que Tkinter comme possibilités

    Maintenant il est vrai que Tkinter reste le plus simple, mais c'est aussi le moins esthétique... Ceci n'aura pas d'importance, tant que tu n'auras pas une base minimale en python afin de coder avec des frameworks plus complexes.

    Bref avec Tkinter, une base de travail faite rapidement... avec ça tu as de quoi faire tes recherches sur des documentations, tutoriels, ...

    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
    import os
     
    import tkinter as tk
    from tkinter import filedialog
     
    CURRENT_DIRECTORY = os.getcwd() # put directory of work !
     
    def display():
        """Display file in current directory"""
        options = {
                    'initialdir': CURRENT_DIRECTORY,
                    'title': 'Choose your file',
                    'filetypes': (("all files", "*.*"),)
                  }
     
        name_file = filedialog.askopenfilename(**options)
        print(name_file) # get name of file
     
    master = tk.Tk()
     
    button_choice = tk.Button(master, text='choice', command=display)
    button_choice.pack()
     
    master.mainloop()
    Bonne continuation !

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Par défaut
    J'ai une petite question.

    imaginons que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichierTrajectoires = "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario\chainedecaractere"
    et que je veux remplacer "chainedecaractere" par le nom de mon dossier, Sachant que le nom de mon dossier se situe dans une variable que j'appelle "NomFichier"

    J'ai alors écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fichierTrajectoires = "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario\chainedecaractere"
    NomFichier= "Dossier_roulage"
    fichierTrajectoires = fichierTrajectoires.replace(chainedecaractere,Nomfichier)
    Mais ça n'a pas l'air de marcher.

    Ou serait mon erreur? Merci

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Parce-qu'il manque les guillemets entre

    chainedecaractere

    ?

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Par défaut
    Oui j'ai bien mis les guillemets dans mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def main():
     
     
        mice.debugPrintString("Debut passage dans le module chargerTrajectoire")
     
     
        fichierTrajectoires = "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario\chainedecaractere"
    	Nomfichier="TREATED_RWUP2_DE198CD_20150124_112609_041_objCoord.txt"
    	fichierTrajectoires = fichierTrajectoires.replace('chainedecaractere',Nomfichier)
    Mais ça ne marche pas

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Chez moi ça fonctionne... Dire ça ne marche pas en développement ne sera jamais suffisant !

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par accessbeginner Voir le message
    et que je veux remplacer "chainedecaractere" par le nom de mon dossier, Sachant que le nom de mon dossier se situe dans une variable que j'appelle "NomFichier"
    Pourquoi ne pas utiliser os.path.join qui est l'équivalent de fullfile pour MATLAB ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import os 
     
    fichierTrajectoires = "D:\OKTAL\SCANeRstudio_1.6\data\GettingStarted\scenario"
     
    NomFichier= "Dossier_roulage"
     
    str = os.path.join(fichierTrajectoires, NomFichier)

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2014, 09h56
  2. Réponses: 3
    Dernier message: 06/06/2011, 08h12
  3. Boite de dialogue copie de fichier
    Par vincob dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/04/2011, 14h44
  4. Réponses: 1
    Dernier message: 03/04/2010, 22h36
  5. Réponses: 7
    Dernier message: 09/09/2009, 09h10

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