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 :

"Actualiser" un module


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mr Hyde
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Par défaut "Actualiser" un module
    Bonjour!

    Voila mon problème: mon programme genere des des fichiers .py qui ressemblent en gros à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exemple: fich1.py
    titre="mon_titre"
    total=12
    Ces fichiers, je les charge via import, pour exploiter les valeurs stockées dans ces fichiers. Lorsqu'on utilise mon programme, ces données sont amenées à changer. Le problème est que je n'arrive pas a réactualiser ces valeurs.

    J'ai essayé ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import fich1.py
    fich1.titre
    >>"mon_titre"
    del fich1  # supprime fich1 et son contenu
     
    --Le fichier est modifié, le titre devient "mon_nouveau titre"
     
    Je recommence:
    import fich1.py
    fich1.titre
    >"mon titre"
     
    --Le contenu de fich n'a pas été actualisé, je dois quitter python et recommencer pour voir les changements
    Je ne sais pas si vous avz bien compris mon problème....en gros, je dois quitter mon programme pour voir les changements.

    Savez vous si on peut "actualiser" un module sans avoir à relancer python?
    Merci d'avance!

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Je n'ai pas testé, mais apparemment cette fonction devrait faire l'affaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> help(reload)
    Help on built-in function reload in module __builtin__:
     
    reload(...)
        reload(module) -> module
     
        Reload the module.  The module must have been successfully imported before.

  3. #3
    Membre confirmé Avatar de Mr Hyde
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Par défaut
    Génial oiffrig!!! Ca marche parfaitement! Merci!
    Voila un truc à rajouter dans la FAQ!!

  4. #4
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Qu'est-ce que tu mets dans tes fichiers .py ?
    Si ce sont des fichiers de configuration, peut-être devrais-tu mieux les gérer en temps que fichier de configuration ? (cf FAQ: http://python.developpez.com/faq/?page=fichierconf )

    Parce qu'en soit, ce n'est pas une bonne chose de faire des reload de module. En général, j'aurai plus vu une conception du style: "je modifie mes variables puis je les sauvegarde dans un fichier" (et non l'inverse)

  5. #5
    Membre confirmé Avatar de Mr Hyde
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Par défaut
    Mes .py ne contiennent en fait qu'une seule variable: un dictionnaire.
    Dans le cas de mon programme, je ne pense pas que ca posera de problème.

    La fenetre principale contient 3 onglets, qui sont 3 listes. Ces listes sont générées apres analyse d'un fichier de config (c'est toi qui m'avait appris leur existance dans un post ).

    Le fichier de config, repertorie tous mes fichiers et les lies aux bons onglets. Il contient aussi les preferences des utilisateurs.

    En tout cas, merci pour ces réponses, me voila sorti d'une grosse galère!

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

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