Sweetohm

Michel Casabianca


Il peut être parfois utile de lancer un script Python et de l’interrompre en cours d’exécution dans un shell intéractif. C’est le cas par exemple pour déboguer un script et tester intéractivement du code.

Pour ce faire, on écrira les lignes suivantes à l’endroit où l’on veut passer au shell interactif :

import code
code.interact(local=locals())

Cerise sur le gâteau, on pourra activer la complétion (par appui sur la touche de tabulation) et le chargement de l’historique au démarrage et l’enregistrement lorsqu’on quitte le shell (par Ctrl-D) avec la fonction suivante :

def completion_and_history():
    '''
    Set TAB completion, load history file on startup and save it on exit.
    '''
    readline.parse_and_bind('tab: complete')
    history_path = os.path.expanduser("~/.python.history")
    if os.path.exists(history_path):
        readline.read_history_file(history_path)
    def save_history(history_path=history_path):
        readline.write_history_file(history_path)
    atexit.register(save_history)

On appellera cette fonction avant de passer en mode intéractif.

Enjoy!