Appel d'une fonction Python à partir d'un script shell
Je suis à essayer de comprendre comment appeler une fonction Python à partir d'un script shell.
J'ai un fichier Python avec de multiples fonctions et j'ai besoin d'utiliser les valeurs renvoyées par eux dans mon script shell. Est-il un moyen de le faire.
Je fais cela dans le but de lire un fichier de configuration à l'aide de Python et d'obtenir les valeurs de la coquille. Quel autre meilleur moyen d'y parvenir.
test.py
contient:
import ConfigParser
config = ConfigParser.ConfigParser()
config.read("test.conf")
def get_foo():
return config.get("locations", "foo")
def get_bar():
return config.get("locations", "bar")
J'ai besoin de stocker les valeurs renvoyées par les fonctions Python dans une variable du shell.
source d'informationauteur | 2011-12-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envoyer le résultat de vos fonctions à la sortie standard en demandant l'interpréteur Python pour imprimer le résultat:
La
-c
option demande simplement à Python pour exécuter certaines commandes Python.Afin de stocker le résultat dans une variable, vous pouvez donc faire:
ou, de manière équivalente
depuis backticks et
$(…)
évaluer une commande et de la remplacer par sa sortie.PS: Obtention du résultat de chaque fonction nécessite l'analyse du fichier de configuration à chaque fois, avec cette approche. Cela peut être optimisé par le retour de tous les résultats d'un seul coup, avec quelque chose comme:
Les résultats peuvent ensuite être divisé et mis dans différentes variables avec
qui prend la deuxième résultat et la met dans
RESULT_BAR
par exemple (et, de même:-fn
pour résultat #n).PPS: Pablo Maurin mentionné, il serait probablement plus facile de tout faire en un seul interprète (Python, mais peut-être aussi la coquille), si possible, au lieu de calculer des variables dans un programme et de les utiliser dans un autre.