Question

Je lance un script Python à partir de la ligne de commande (Bash) sous Linux. Je dois ouvrir Python, importer un module, puis avoir des lignes de code interprété. La console doit alors rester en Python (pas quitter). Comment puis-je faire?

J'ai essayé un alias comme celui-ci:

alias program="cd /home/myname/programs/; python; import module; line_of_code"

Mais cela ne commence python et les commandes ne sont pas exécutées (pas de module d'importation, pas ligne de code traité).

Quelle est la bonne façon de le faire, pourvu que je dois garder ouvert Python (pas le quitter) après que le script est exécuté? Un grand merci!

Était-ce utile?

La solution

Un moyen facile de le faire est avec le module "code":

python -c "import code; code.interact(local=locals())"

Cela vous déposera dans un shell interactif lorsque code.interact () est appelée. L'argument mot-clé local à interact est utilisé pour préremplir l'espace de noms par défaut de l'interpréteur qui est créé; nous utiliserons locals(), qui est une fonction qui renvoie l'builtin espace de noms local comme un dictionnaire.

Votre commande ressemblerait à quelque chose comme ceci:

python -c "import mymodule, code; code.interact(local=locals())"

qui vous laisse tomber dans un interprète qui a l'environnement correct.

Autres conseils

utiliser un sous-programme au lieu d'alias

callmyprogram(){
  python -i -c "import time;print time.localtime()"
}
callmyprogram

Exemple:

python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top