Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Femme Profil pro
    Inscrit en
    juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 4
    Points : 0
    Points
    0

    Par défaut inclure du python dans un script shell

    Bonjour,

    Je souhaiterai introduire des commandes python dans un script shell.
    Je sais que cela peut se faire de la façon suivante : python -c cmd
    Mon problème est que si j'utilise cette méthode le code python est "indépendant" du script qui s'exécute alors que je voudrai les faire communiquer.
    En quelque sorte je souhaiterai pouvoir passer une commande python et récupérer le résultat dans mon script.

    en vous remerciant d'avance pour votre aide

  2. #2
    Expert Confirmé
    Avatar de fred1599
    Homme Profil pro Fred
    Enseignant
    Inscrit en
    juillet 2006
    Messages
    1 731
    Détails du profil
    Informations personnelles :
    Nom : Homme Fred
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 731
    Points : 2 598
    Points
    2 598

    Par défaut

    tu écris les résultats de ta commande python dans un fichier et tu le récupère avec ton script bash, non?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Invité de passage
    Femme Profil pro
    Inscrit en
    juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    En fait mon problème est le suivant
    j'ai une API distante en python qui fonctionne grâce à la libraire xmlrpc
    Dans une grande majorité des cas il s'agit de programmes python qui l'utilise donc pas de problème. Mais dans certains cas j'ai des scripts shell qui peuvent avoir besoin d'utiliser l'api. je souhaiterai savoir si c'est possible de faire quelque chose ou pas ?

    merci d'avance

  4. #4
    Futur Membre du Club
    Homme Profil pro Olivier
    Ingénieur-Chercheur
    Inscrit en
    février 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur-Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : février 2010
    Messages : 12
    Points : 16
    Points
    16

    Par défaut

    Bonjour,

    Je ne comprends pas trop votre problème en regard de l'utilisation de Python.

    Quelles sont les données que vous devez échanger au sein de votre script ?

    La solution donnée par fred1599 est la plus simple et la plus efficace à mon avis, en redirigeant les entrées/sorties si nécessaire (éventuellement vous pouvez passer par des pipes pour enchaîner des commandes si vous êtes sous Linux, mais cela revient au même).

    Cela est plus un problème d'écriture/programmation d"un script shell qui n'est pas lié à l'utilisation de commandes Python, ce même problème se pose pour l'appel à un autre script, à un exécutable (écrit en C, par ex.).

    Une autre solution est aussi de transformer votre script shell en un script Python qui permettra de "mieux gérer" les appels aux autres Python.
    Cela dépend du temps que vous disposez pour mettre au point votre script (avec un peu de temps c'est celle que je choisirais et avec de grandes chances que le script écrit soit portable).

    Cordialement,

  5. #5
    Invité de passage
    Femme Profil pro
    Inscrit en
    juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Merci pour vos réponse

    Ma dernière solution était en effet de réécrire les scripts shell en python, je crois que c'est ce que je vais faire. Je vois pas comment je peut m'en sortir autrement

    encore merci

  6. #6
    Expert Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 748
    Points : 7 160
    Points
    7 160

    Par défaut

    Salut,

    j'ai une API distante en python qui fonctionne grâce à la libraire xmlrpc
    XMLRPC "masque" le langage de programmation dans lequel à été écrite "la chose" derrière l'API.

    En gros, vous ouvrez une connexion au serveur et vous lui envoyez des documents XML (du texte) avec "dedans" des instructions et des paramètres "conformes" à l'API... Puis la chose vous répond avec un document XML qui faudra décortiquer pour tester le retour, extraire une liste,...

    La difficulté est de trouver une "bibliothèque" ou de construire soit même le code qui vous permettra de simplifier l'écriture du dialogue en XMLRPC (avec n'importe quoi).

    Une illustration est ici

    Dans une grande majorité des cas il s'agit de programmes python qui l'utilise donc pas de problème. Mais dans certains cas j'ai des scripts shell qui peuvent avoir besoin d'utiliser l'api. je souhaiterai savoir si c'est possible de faire quelque chose ou pas ?
    Si c'est quelque chose qui est destiné à durer ou à évoluer... il pourrait être judicieux de "profiler" l'API pour qu'elle puisse être utilisable depuis bash (i.e. bash ne sait même plus qu'il parle XMLRPC seul une petite couche "python", le profiling le sait.
    L'idée pourrait être de mettre à plat l'API pour qu'on puisse l'utiliser en ligne de commande, le profiling se chargeant de mettre la chose en forme côté XML.
    Bon courage,
    - W
    Architectures Post-Modernes

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •