{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "[prev: *File and Directory Access*](stdlib-file-directory.ipynb) | [home](../index.ipynb) | [next: et plus encore](https://docs.python.org/library/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Le module *subprocess*\n", "\n", "Python fourmille de librairies standard très pratiques, et une liste exhaustive ne peut être proposée.\n", "\n", "Le module *subprocess* peut s'avérer être très utile pour piloter d'autres logiciels." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import subprocess as sp\n", "# Lance le bloc-notes\n", "app = sp.Popen('notepad')\n", "print(\"L'application a été lancée\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# On peut bloquer le flux d'exécution tant que le logiciel n'a pas terminé\n", "app = sp.Popen('notepad')\n", "app.wait()\n", "print(\"L'application a été lancée\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# On peut récupérer les messages de sortie du logiciel\n", "# Exemple avec un script shell qui affiche le contenu du dossier courant\n", "batch = sp.Popen('dir',shell=True,stdout=sp.PIPE)\n", "out,err = batch.communicate()\n", "print(out.decode(errors='replace'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*subprocess* permet de lancer une batterie de calculs pour le week-end, piloter des échanges d'informations entre des logiciels, ..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercices" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.2" } }, "nbformat": 4, "nbformat_minor": 1 }