Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Interfaçage autre langage
Interfaçage autre langage Forum d'entraide pour l'interfaçage avec d'autres langages (ctypes, api C, swig, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/08/2011, 11h34   #1
Mim's
Invité de passage
 
Femme
Inscription : 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
Mim's est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 12h21   #2
fred1599
Membre Expert
 
Avatar de fred1599
 
Homme Fred
Enseignant
Inscription : juillet 2006
Messages : 1 324
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 324
Points : 1 823
Points : 1 823
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)
fred1599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h16   #3
Mim's
Invité de passage
 
Femme
Inscription : 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
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
Mim's est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h37   #4
OliSharkPython
Futur Membre du Club
 
Homme Olivier
Ingénieur-Chercheur
Inscription : 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
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,
OliSharkPython est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h44   #5
Mim's
Invité de passage
 
Femme
Inscription : 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
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
Mim's est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 21h11   #6
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Salut,

Citation:
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

Citation:
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
wiztricks est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web