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

Interfaçage autre langage Python Discussion :

inclure du python dans un script shell


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    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é
    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
    Candidat au Club
    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
    Membre à l'essai
    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
    Candidat au Club
    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 éminent sénior
    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.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

###raw>template_hook.ano_emploi###