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 :

Débutant en Python : comment surveiller un répertoire pour déclencher une action


Sujet :

Python

  1. #101
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    113 lignes, trop long ??? C'est une blague ?

    Qu'est-ce qui est mal structuré ? Ca me semble pourtant pas compliqué : des procédures pour les parties de code qui servent à plusieurs endroits... Dans ma prime jeunesse ça servait à ça les procédures...

    Les "détails" c'est que ça renvoie un message d'erreur... Où puis-je trouver l'explication de ce code d'erreur ? C'est "mal" d'appeler une procédure lorsqu'un évènement se produit ? Il faut une procédure définie de manière particulière pour ça ?
    Pourquoi ça marche pour un clic bouton et pas pour un "callback" ? Est-ce à dire qu'il faut une procédure avec un paramètre "event" pour le callback, dans laquelle j'appelle la procédure de renommage "classique" ?

  2. #102
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    Oui, lorsque je sélectionne un autre élève dans la liste voilà ce que ça renvoie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\richa\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
        return self.func(*args)
    TypeError: selection_eleve() takes 0 positional arguments but 1 was given
    Bonjour,
    Pour que ta fonction puisse être aussi appellé depuis l'événement, il te faut transmettre l'argument evt à ta fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def selection_eleve(self, event=None)
    ps: j'ai lu rapidement ton code , en lisant self dans ta fonction j'ai cru que tu avais créer une classe. Ce qui n'est pas le cas.
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def selection_eleve(event=None)
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  3. #103
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    Pourquoi ça marche pour un clic bouton et pas pour un "callback" ? Est-ce à dire qu'il faut une procédure avec un paramètre "event" pour le callback, dans laquelle j'appelle la procédure de renommage "classique" ?
    Il y a différents types d'évènements et les callbacks associés vont recevoir différents arguments... Le callback passé comme command à un Button n'a pas le même prototype que celui associé à .bind.

    C'est comme çà et ça fonctionne "as documented".
    Je reconnais que ce n'est pas "intuitif"... c'est pour çà qu'on a intérêt à se former un peu avant.

    Citation Envoyé par Vincent-vr Voir le message
    113 lignes, trop long ??? C'est une blague ?
    La question se résume à "pourquoi le callback associé à <<ListboxSelect>> via un .bind se récupère un argument"... ou "comment le faire disparaître lorsqu'on n'en a pas besoin?" peut s'illustrer par un petit exemple de quelques lignes et motiver la création d'une nouvelle discussion.

    Cela permettrait a plus de moins débutants de vous apporter des réponses plutôt que d'attendre que le vieux grincheux qui sait lire le code pourri écrit par d'autres (c'est une de mes spécialités) comprenne ce qu'il se passe sans se prendre les pieds dans le tapis (qui est le critère pour savoir si un code est lisible/bien structuré ou pas).


    Citation Envoyé par Hominidé Voir le message
    Pour que ta fonction puisse être aussi appellé depuis l'événement, il te faut transmettre l'argument evt à ta fonction.
    On peut écrire def selection_eleve(*event)
    Mais actuellement, la fonction n'a que faire de la présence ou pas d'event.
    Dans ce cas, on peut manger l'argument:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          liste.bind('<<ListboxSelect>>',lambda e: selection_eleve())
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #104
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est comme çà et ça fonctionne "as documented".
    Je cherche encore où...

    Merci pour les explications ! Donc dans le cas d'un callback il y a forcément un argument récupérant l'évènement déclencheur. Sauf que pour les autres appels à ma procédure, je n'en ai cure ! D'où l'argument optionnel...
    Et par la même occasion je découvre l'usage des fonctions lambda
    Je voudrais pas dire mais pour trouver ça sur le net, faut déjà savoir ce qu'on cherche

  5. #105
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    Je voudrais pas dire mais pour trouver ça sur le net, faut déjà savoir ce qu'on cherche
    Les listes d'arguments arbitraires (*event) ou les fonctions anonymes (lambda) sont décrites (avec exemples) dans le tutoriel qui vient avec Python (la référence pour programmeur qui débute avec Python).

    La plupart des tutos sur tkinter utilisent lambda car c'est une façon simple de lier un objet a une fonction sans avoir a écrire une "class".

    L'intérêt des tutos, c'est d'acquérir un minimum de bagage technique et un petit capital d'exemples qui permettront de choisir ses mots clefs lors qu'on cherche quelque chose.

    Pour les documentations sur tkinter, vous en avez un florilège dans cette discussion qui est la première à s'afficher lorsque vous prenez le temps d'aller sur le forum tkinter.


    Mais bon, quand on ne veut pas ouvrir la documentation et les tutos, pourquoi espérer que vous prêtiez attention à ce qu'il se passe ici et comment ça fonctionne? Visiblement, vous n'en avez pas grand chose à foutre pourvu que votre joujou soit utilisable le 23.

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

  6. #106
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Désolé si je veux faire de la programmation pour un répondre à un besoin professionnel et pas seulement pour le plaisir, sinon j'aurai certainement pris beaucoup de plaisir à coder un p'tit jeu rigolo pour amuser mes enfants... Je vais y penser
    Effectivement maintenant mon joujou utilitaire fonctionne et je vais pouvoir approfondir mes connaissances de ce merveilleux langage à temps perdu

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

    Citation Envoyé par Vincent-vr Voir le message
    Désolé si je veux faire de la programmation pour un répondre à un besoin professionnel
    Je ne fais que vous rappeler les règles que vous devriez respecter avant de poster... et que vous êtes supposé avoir lu et compris. Ce qui est la base lorsqu'on veut intégrer une communauté (telle que celle ci).

    Personnellement, quand je suis pressé, je sollicite un professionnel (et je le paie)... Et quand je suis moins pressé et que ça me botte d'apprendre, je prends le temps qu'il faut (tant que ça ne devient pas "urgent").

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

  8. #108
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    On peut pas avoir envie d'apprendre vite ?

  9. #109
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    On peut pas avoir envie d'apprendre vite ?
    Techniquement, ce n'est pas possible car apprendre, c'est fabriquer des chemins/connexions entre neurones. La répétition permet de renforcer ces connexions et les transformer en automatismes.

    Comme c'est de la chimie, c'est lent (sauf dans matrix).

    Ceci dit vous ne cherchez pas à apprendre mais à obtenir rapidement un résultat sans trop prendre le temps d'apprendre. C'est sur que ça peut être tentant... Demander de l'aide à une communauté de développeurs que vous n'en avez rien à cirer pourvu qu'ils vous dépatouillent ne va pas marcher longtemps.

    Il suffit de lire votre code pour se rendre compte que vous n'avez pas pris le temps de vous former un peu, et au plus il sera pénible à lire, au moins il y aura de gens qui prendront le temps de vous répondre.

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

  10. #110
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    Désolé si je veux faire de la programmation pour un répondre à un besoin professionnel et pas seulement pour le plaisir
    Je fais aussi de la programmation de façon professionnelle. Mais cela ne m'a pas empêché, quand j'ai voulu me mettre à Python, de télécharger un tuto et prendre le temps de le lire et aussi de faire certains des exercices qui étaient mentionnés. Parce que je savais que ce temps "investi" serai ensuite rentabilisé.
    Et si demain je veux apprendre un autre langage, ou même une technologie précise de Python que je ne connais pas encore, je commencerai par chercher des tutos, des exemples ou la doc du langage ou de la techno.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #111
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Encore désolé de vous avoir dérangé...Si un forum n'est pas un endroit d'entraide pour aider les p'tits nouveaux à mettre le pied à l'étrier, alors quelque chose m'a échappé...
    C'est pas grave ! J'en vu et lu d'autres

  12. #112
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Vincent-vr Voir le message
    Si un forum n'est pas un endroit d'entraide pour aider les p'tits nouveaux à mettre le pied à l'étrier, alors quelque chose m'a échappé...
    Euh... oui, ce qui t'a visiblement échappé ce sont les 110 réponses sur ce topic qui s'étalent sur 3 pages et qui montrent qu'effectivement on s'investit pour te répondre du mieux qu'on peut.
    Mais si tu n'admets pas qu'on puisse aussi te dire qu'un langage ou une techno spécifique ça commence par s'apprendre dans des livres ou de la doc alors effectivement quelque chose de fondamental t'a échappé et continue à t'échapper (surtout si ces livres ou cette doc sont offertes gratuitement sur le net). En plus, je ne te dis rien que je ne fasse pas moi-même pour mes propres soucis (exemple ici où je mentionne mon besoin d'apprendre une certaine technologie)...

    Citation Envoyé par Vincent-vr Voir le message
    C'est pas grave ! J'en vu et lu d'autres
    Nous aussi
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #113
    Futur Membre du Club
    Homme Profil pro
    ex-informaticien photographe
    Inscrit en
    Septembre 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ex-informaticien photographe
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2021
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Si si, j'admets tout à fait que je doive me plonger dans le manuel pour comprendre la philosophie du langage et c'est ce que j'ai commencé à faire !
    Ainsi je pourrai développer l'application complète dont j'ai l'idée !
    Merci pour votre aide à tous pour ce démarrage chaotique mais riche d'enseignements !

  14. #114
    Invité
    Invité(e)
    Par défaut
    Tkt Vincent, ici, il n'y a pas que des vieux cons intraitables sur la discipline !
    Il y aussi des p'tits cons peu conventionnels.

    Wiz et Sve@r ont raison de dire qu'il faut apprendre les bonnes méthodes plutôt que de manipuler des bouts de code trouvé sur internet, mais bon souvent ce que tu n'auras pas lu dans un tuto complet n'auras pas grand intérêt pour ton besoin spécifique du moment. Le problème c'est qu'une fois sur dix/cent/mille (?), tu sous-estimes un truc primordial, pour ma part ça a été notamment le cas pour les threads démons.

    Après tout dépend de ton objectif...

    C'était Captain Obvious !

  15. #115
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 812
    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 : 3 812
    Points : 7 097
    Points
    7 097
    Par défaut
    Wiz et Sve@r ont raison de dire qu'il faut apprendre les bonnes méthodes
    Les bonnes méthodes pour aller plus dans le détail, c'est de commencer par le commencement... Cela signifie qu'on débute avec un tutoriel, on lit, on fait des petits tests, on découvre le langage et on se construit une bonne base en ayant conscience de tous les types standards existant.
    Ensuite on commence à faire des petites choses plus élaborées, mais encore une fois, en ayant conscience que l'on a les bases théoriques (pour comprendre un minimum ce qu'on fait).
    Tout ça se construit pas en un jour, et apprendre ne veut pas dire qu'on sait faire, il faut pratiquer encore et encore...

    Et ça, les membres habitués et expérimentés, sur ce forum, le diront autant de fois que cela ne sera pas appliqué, car ça ne peut pas en être autrement.

    plutôt que de manipuler des bouts de code trouvé sur internet
    Ça peut en être une bonne si l'on comprend ce qu'on lit, ou au moins l'on teste afin de voir ce qui se passe derrière des lignes complexes sur son interpréteur.
    La mauvaise méthode, c'est faire quelque chose qu'on ne comprend pas, par exemple, en copiant bêtement un code sans savoir ce qu'il fait réellement.

    Pour conclure,

    L'entraide oui, mais répéter des bases écrites n fois sur les forums, les tutoriels, ... ce n'est plus de l'entraide, c'est rechercher ce que le PO n'a pas pris le temps de faire.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/08/2011, 11h16
  2. comment surveiller un répertoire à distance?
    Par rainy_kll dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 08/07/2010, 18h04
  3. Réponses: 2
    Dernier message: 31/12/2008, 12h16
  4. Réponses: 7
    Dernier message: 21/10/2004, 09h13
  5. [PowerAMC] Comment s'en servir pour creer une base?
    Par Elmilouse dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2004, 09h53

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