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 :

Commande os.system qui s'exécute mais reste en attente de la fin de l'exécution de la tache appelee [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Par défaut Commande os.system qui s'exécute mais reste en attente de la fin de l'exécution de la tache appelee
    Bonjour,

    Petit problème avec la commande os.system.

    Mon programme python réalise plusieurs images. Je souhaite faire une animation de ces images visualisable hors python. Le navigateur Firefox me semble parfait.
    J'utilise les fonctions animation de matplotlib. Le fichier animation est sauvegardé dans un fichier html. Je lance l'animation en fin de mon programme avec os.system.
    Mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ani = animation.ArtistAnimation(animationimages, touteslesimages, interval=400, blit=True, repeat_delay=300)
        ani.save('FichierAnimation.html',bitrate=2048, dpi=128)
        os.system('FichierAnimation.html')
    J'ai lu que :
    "la fonction system exécute un environnement particulier. Cela veut dire, entre autres, que system retournera tout de suite même si la commande tourne toujours.".

    Je n'ai pas ce fonctionnement.
    D'abord, si le navigateur n'est pas démarré, exécuter la commande 'FichierAnimation.html' le lance bien avec mon animation mais le programme appelant python est bloqué. Lorsque je veux l’arrêter, Windows me dit "le programme ne répond plus, le fermer......".

    Dans le cas où le navigateur est bien déjà démarré, la commande os.system ouvre bien mon animation mais le programme python appelant reste en attente de la fermeture du navigateur puis, une fois le navigateur fermé, mon programme se poursuit..

    Une idée pour corriger ce problème ou bien une solution alternative pour qu'à partir de python, je lance l'exécution de mon fichier html qui va donc lui-même via l'association type de fichier - application lancer le navigateur et qui se poursuit sans attendre la fin de cette tâche ?

    Merci

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

    Citation Envoyé par Tonivege Voir le message
    J'ai lu que :
    "la fonction system exécute un environnement particulier. Cela veut dire, entre autres, que system retournera tout de suite même si la commande tourne toujours.".
    os.system se comporte comme le raconte la documentation. Et pour pouvoir retourner le statut de fin du programme qui a été lancé, difficile de ne pas attendre qu'il se termine. La documentation indique aussi comment faire autrement en proposant d'utiliser le module subprocess.
    note: dans votre cas, si vous êtes sous Windows, os.startfile sera plus simple à utiliser.

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

  3. #3
    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,

    Utilise directement webbrowser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import webbrowser
    webbrowser.open("FichierAnimation.html", 2)

    https://docs.python.org/3/library/we...ebbrowser.open

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Par défaut
    Merci à vous pour vos réponses

    Je regarde au plus vite et posterai le résultat

    Merci

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 76
    Par défaut
    C'est EXACTEMENT ce qu'il me fallait. Je pars sur Startfile mais les 2 solutions fonctionnent.

    Merci wiztricks et VinsS.

    Je clos le sujet.

    Merci encore.
    Tonivege

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

Discussions similaires

  1. Commande system : cp s'exécute mais renvoie un message d'erreur
    Par Takka dans le forum Programmation et administration système
    Réponses: 14
    Dernier message: 21/05/2014, 19h12
  2. Réponses: 1
    Dernier message: 03/04/2008, 16h45
  3. [Système] Commande system qui ne marche pas
    Par marie59 dans le forum Langage
    Réponses: 7
    Dernier message: 16/05/2007, 17h40
  4. Commande MS DOS qui exécute un fichier C++.
    Par Furius dans le forum C++
    Réponses: 5
    Dernier message: 09/09/2005, 17h42

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