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 :

Lire une information ecrite sur le shell


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2016
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Lire une information ecrite sur le shell
    Bonjour,
    Je me sert de python pour créer une interface avec MPD/MPC.
    Je suis presque à la fin de mon process, mais il y a un cas que je n'arrive pas a traiter.
    Si je rentre par exemple la valeur 9640, je dois envoyer à MPD/MPC l'instruction suivante, hormis que pour l'exemple je fait le test dans le shell python
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> p=os.popen("mpc add 96/40.mp3")
    error adding 96/40.mp3: Not found
    Cette erreur est normale car je n'ai pas ce fichier dans ce répertoire.
    Par contre je n'arrive pas a récupéré cette erreur pour que python me signale que le fichier est introuvable, via l'interface.

    Avant de jeter ma bouteille à la mer, j'ai essayé plusieurs solutions, mais aucune n'a pu me récupérer la ligne error adding 96/40.mp3: Not found.
    Voici ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> sortie=os.popen("mpc add 96/40.mp3","r").read()
    error adding 96/40.mp3: Not found
    >>> print(sortie)
     
    >>> sortie=os.popen("mpc add 96/40.mp3","r").readlines()
    >>> print(sortie)
    []
    Je précise que mon programme se trouve dans un Raspberry Pi 3, et que je débute en Python.

    Je vous remercie par avance de votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par tilowil Voir le message
    Je précise que mon programme se trouve dans un raspberry pi 3, et que je débute en python.
    os.popen().read() ne lit que ce qui arrive sur stdout.
    Une erreur (et le message associé) arrive en général sur stderr.
    Et dans le mode d'emploi d'os.open vous auriez lu que pour avoir un peu plus de contrôle sur ce qu'il se passe, il faut utiliser subprocess.Popen (ou subprocess.run) suivant la version de Python utilisée.
    note: "débuter" c'est apprendre avec des tutos et passer du temps à se familiariser avec la documentation pour voir ce qu'elle raconte et les différentes possibilités de la bibliothèque standard. Si vous vous lancez à programmer en ayant brûlé ces étapes là, sûr que çà ne va pas être simple...

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2016
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci pour le conseil et l'orientation, mais j'ai essayé avec stdout, effectivement, mais aussi avec stderr, que je n'ai jamais reussi a utiliser car j'ai eu des messages d'erreurs a l'execution. J'ai vu aussi que popen etait devenu obsolete et qu'il etait preferable d'utilisé subprocess. Je suis en train de changer toute mon interface pour la migrer de popen vers subprocess. Peut être que j'aurais plus de succes avec subprocess.

    Ensuite je ne brule aucune etape, vous ne savez pas ce que j'ai lu ou pas avant de jeter ma bouteille. Dans ma demande d'aide je ne vais pas non plus étalé mon CV. Je bloque sur un point, et a force de tourner le problème dans tout les sens je ne vois plus ou se situe mon blocage, un regard extérieur est souvent la meilleure solution.

    Donc merci pour cet orientation, je vais chercher dans ce sens.

    Bonne journée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2010, 09h48
  2. Lire une video stockée sur Ftp à partir d'un lecteur exportable
    Par Aspic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/01/2008, 11h33
  3. [VB6]Lire une base Access sur le Net.
    Par SNDP dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/07/2006, 16h02
  4. Lire une vidéo stockée sur serveur distant
    Par zoidy dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 22/05/2006, 14h38
  5. Lire une fonction numérique sur le clavier
    Par ladognon dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2006, 20h07

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