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 :

Recuperer le retour d'un qprocess


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut Recuperer le retour d'un qprocess
    Bonjour,

    J'utilise des qprocess pour executer des commandes en fond.

    Cela marche tres bien mais j'aurais besoin de tester le retour de la commande mais je rencontre les soucis suivants :
    dans ma console bash :
    Si j'utilise la commande execute du qprocess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> process = QProcess()
    >>> test = process.execute("ffmpeg")
    ffmpeg version 0.8.8-6:0.8.8-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
      built on Oct 22 2013 12:36:33 with gcc 4.8.1
    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
     
    Use -h to get full help or, even better, run 'man ffmpeg'
    >>> print(test)
    1
    Comment faire avec la commande start ?
    j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> process = QProcess()
    >>> test = process.start("ffmpeg")
    >>> print(test)
    None
    >>> process.exitStatus()
    0
    >>> process.exitCode()
    0
    >>> process.error()
    5
    Finalement il me dit juste que le QProcess s'est terminé normalement mais pas que la commande elle, s'est mal terminée...

    Pour le retour d'erreur, Il me donne toujours 5 que la commande se passe bien ou non.


    Ma question est donc la suivante : Est-il possible de récupérer après coup et sans utiliser exécute le retour de la commande elle même et non le retour du QProcess ?

    Merci à vous !

  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
    Sans appeler .waitForFinished ou sans passer par le signal 'finished', exitCode et exitStatus retourneront du garbage.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    ok, en utilisant exitCode() dans le finished ca marche bien

    merci encore !

    J'avais testé error et exitStatus dans le finished mais pas exitCode...

    Désolé de vous avoir pris du temps...

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

    Désolé, mais le dernier bout de code que vous montrez dit seulement que vous voulez récupérer exitCode sans prendre la peine de regarder ce qu'il y a dedans.

    EDIT: vous avez supprime le code et trouve le truc tout seul... super.
    J'ai corrige l'exemple. Il y avait un bug dans le prototype. Si récupérer une variable inutilisée ne servait a rien cote "fonctionnel" de l'exemple, montrer juste ou la trouver est "mieux".

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

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

Discussions similaires

  1. [textarea] recuperer les retour charriot
    Par Mcfly123 dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/06/2007, 15h59
  2. Recuperer les retour charriot d'un textarea
    Par Mcfly123 dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/05/2007, 08h51
  3. Réponses: 5
    Dernier message: 15/03/2007, 13h48
  4. Réponses: 5
    Dernier message: 08/08/2006, 00h02
  5. [Reflection] Récupérer le retour d'une méthode
    Par nana1 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 10/11/2005, 13h33

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