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 :

Comment arrêter l'exécution d'un script et continuer l'exécution d'un autre


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 61
    Par défaut Comment arrêter l'exécution d'un script et continuer l'exécution d'un autre
    Bonjour,

    J'explique : j'ai un premier script Python depuis lequel j'exécute un autre script avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     check_call(command,shell=True,cwd=app_test_dir)
    J'ai des contrôles d'erreurs sur le deuxième script et s'il y a une erreur, il faut arrêter l'exécution du second script et continuer l'exécution du premier script or d'après mes recherches sys.exit() et quit() arrêtent l'exécution des 2 scripts.

    Est ce qu'il y a une solution pour arrêter juste l'exécution du premier script ?

    Merci pour votre aide.

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

    Normalement c'est le rôle du deuxième script de retourner un code.

    Par exemple 0 si tout s'est bien passé ou 1 en cas d'erreur, ainsi ton premier script pourra continuer en sachant ce qui s'est passé dans le deuxième.

    Tu as accès au code du deuxième script ?

  3. #3
    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 ammouna340 Voir le message
    J'ai des contrôles d'erreurs sur le deuxième script et s'il y a une erreur, il faut arrêter l'exécution du second script et continuer l'exécution du premier script or d'après mes recherches sys.exit() et quit() arrêtent l'exécution des 2 scripts.
    C'est pas si compliqué d'écrire un script contenant juste exit(), de le lancer avec subprocess.check_call et regarder ce qu'il se passe? Cela vous permettrait de confirmer (ou pas) que çà fait ce que vous avez compris.
    Normalement, vous devriez constater que l'appelant "sort" du check_call et continuer sa vie.
    Vous pourriez aussi utiliser un paramètre à exit pour signaler une erreur.

    Citation Envoyé par ammouna340 Voir le message
    Est ce qu'il y a une solution pour arrêter juste l'exécution du premier script ?
    subprocess crée un "fils" pas un processus indépendant (dont la création va dépendre de l'environnement système).... Mais c'est un scénario différent du précédent.

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

  4. #4
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 61
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Normalement c'est le rôle du deuxième script de retourner un code.

    Par exemple 0 si tout s'est bien passé ou 1 en cas d'erreur, ainsi ton premier script pourra continuer en sachant ce qui s'est passé dans le deuxième.

    Tu as accès au code du deuxième script ?
    oui oui j'ai accès au deuxième script , du coup au deuxième script je retourne un code d'erreur c'est ça ? je ne fais pas de exit ou quit ?

  5. #5
    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
    heu, oui, tu retournes un code d'erreur. Je suppose, ici, que le script principal doit savoir ce qui s'est passé.

  6. #6
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 61
    Par défaut solution
    une solution ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      try :
                        check_call(command,shell=True,cwd=app_test_dir)
                    except CalledProcessError as e :
                        if e.returncode !=0 :
                            sys.exit()

  7. #7
    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
    Ça a l'air de correspondre à ce que dit la doc [0] tu as essayé ?

    [0] https://docs.python.org/3/library/su...ess.check_call

Discussions similaires

  1. Comment arrêter le déroulement d'un script?
    Par Max747 dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2015, 15h11
  2. Comment arrêter l'exécution d'un script ?
    Par [ZiP] dans le forum Général Python
    Réponses: 10
    Dernier message: 08/11/2011, 20h00
  3. Réponses: 6
    Dernier message: 12/12/2006, 01h30
  4. [javascript] comment interrompre l'exécution d'un script?
    Par r0d dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 09/11/2006, 13h01
  5. [java.util.Timer]Comment arrêter l'exécution d'un Thread
    Par Invité dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 07/06/2006, 07h54

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