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 :

Exécuter programme externe sans retour


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Exécuter programme externe sans retour
    Bonjour à toutes et à tous,

    Je souhaiterai exécuter un programme externe (en ligne de commande) depuis mon script python sans voir afficher le résultat de ce programme externe dans la console lorsque j'exécute mon script python.
    Pour faire simple, je voudrai que os.system("ma commande") se taise.

    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Et c'est quoi, ce programme externe ?
    Il y en a qui ne font pas de bruit...
    Pas d'aide par mp.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Aimlynx Voir le message
    Pour faire simple, je voudrai que os.system("ma commande") se taise.
    Les sorties de "ma commande" iront dans stdout et si c'est la "console", çà va s'afficher.
    Sauf a rediriger stdout, pas possible de s'en sortir avec os.system, la fonction check_output du module subprocess est plus "souple":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from subprocess import check_output
    z = check_output("ma commande")
    Dans ce cas, la sortie sera récupérée dans "z" et on en fait ce qu'on veut.
    Hors console Python, on peut même écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    check_output("ma commande")
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre à l'essai
    Femme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci pour vos réponses

    la commande que je veux exécuter est :
    ffmpeg -i /dev/video0 -vframes 1 -s 1024x768 test.png

    lorsque j'essaye check_output("ffmpeg -i /dev/video0 -vframes 1 -s 1024x768 test.png"), j'obtient ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Traceback (most recent call last):
      File "./c.py", line 11, in <module>
        check_output("ffmpeg -i /dev/video0 -vframes 1 -s 1024x768 test.png")
      File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
        errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Sous Linux, il faut être plus précis. La chaine de caractère "ffmpeg -i /dev/video0 -vframes 1 -s 1024x768 test.png" n'a de sens que pour le shell. Si vous n'ajoutez pas shell=True, on va cherchez le fichier correspondant et çà plante. Mais il est plus sûr de passer une liste: ["ffmpeg", "-i", "/dev/video0", "-vframes", "1", "-s", "1024x768 test.png"], çà évite d'avoir à passer par le shell et un niveau d'interprétation de la commande qui pourrait poser problème.
    Sous Windows, CreateProcess rend cette précision inutile.

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

Discussions similaires

  1. Exécuter programme Excel sans Microsoft Office
    Par linkcr15 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2012, 11h58
  2. Exécuter programme externe
    Par codeurphp dans le forum Langage
    Réponses: 14
    Dernier message: 26/04/2011, 13h43
  3. executer un programme externe sans fork/kill
    Par Galoula dans le forum Débuter
    Réponses: 2
    Dernier message: 30/07/2010, 04h14
  4. Réponses: 4
    Dernier message: 26/11/2009, 18h19
  5. Exécuter PHP externe sans fenêtre Web
    Par mlmp31 dans le forum Langage
    Réponses: 2
    Dernier message: 09/10/2009, 20h18

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