Les divers outils en ligne de commande de Python
(pythonmorsels.com)- Les modules Python peuvent être utilisés comme outils en ligne de commande
- Par exemple, exécuter le module
webbrowserdepuis la ligne de commande permet d’ouvrir l’URL donnée dans le navigateur web par défaut - La bibliothèque standard de Python inclut de nombreux hybrides module-script de ce type
- Par exemple, exécuter le module
- Exécuter Python avec l’option
-mlance le module Python indiqué comme s’il s’agissait d’un script- Certains modules effectuent une action au moment de l’import ; par exemple, le module
antigravityouvre la BD XKCD dans un navigateur web. L’exécuter en ligne de commande produit le même effet qu’importer le module - On appelle cela un "import side effect", que la plupart des modules évitent. Les modules Easter egg comme
antigravityfont exception - Les modules qui évitent les import side effects utilisent la variable
__name__pour avoir un comportement différent selon qu’ils sont importés comme module ou exécutés comme script
- Certains modules effectuent une action au moment de l’import ; par exemple, le module
Outils généraux utiles en ligne de commande
python -m http.server: démarrer un serveur web simplepython -m webbrowser: lancer un navigateur webpython -m json.tool: formater joliment des données JSONpython -m calendar: afficher un calendrier en ligne de commande
Outils particulièrement utiles sous Windows
python3.12 -m uuid: similaire à l’utilitaire CLIuuidgenpython3.12 -m sqlite3: similaire à l’utilitaire CLIsqlite3python -m zipfile: similaire aux utilitaires CLI zip et unzippython -m gzip: similaire aux utilitaires CLI gzip et gunzippython -m tarfile: similaire à l’utilitaire CLI tar
Outils utiles pour travailler avec du code Python
python -m pip: installer des packages Python tierspython -m venv: créer un environnement virtuelpython -m pdb: lancer le débogueur Pythonpython -m unittest: exécuter des tests unittestpython -m pydoc: consulter la documentationpython -m doctest: exécuter les doctests d’un fichier donnépython -m ensurepip: installer pippython -m idlelib: lancer le REPL graphique IDLEpython -m zipapp: convertir un module Python en ZIP exécutablepython -m compileall: précompiler des fichiers Python en bytecode
Outils d’analyse de code Python
python -m tokenize: découper un module Python en tokenspython -m ast: afficher l’arbre syntaxique abstrait du codepython -m dis: désassembler du code Python en bytecodepython -m inspect: inspecter le code source d’objets Pythonpython -m pyclbr: afficher un aperçu des objets d’un module
Scripts amusants servant d’Easter eggs Python
python -m __hello__: affiche "Hello world!"python -m this: affiche The Zen of Python (PEP 20)python -m antigravity: ouvre dans le navigateur web la BD XKCD n°353 sur Pythonpython -m turtledemo: montre des démos de différents dessins réalisables avec le moduleturtle
Autres outils liés à Python
python -m asyncio: lancer un REPL Python avec prise en charge d’asynciopython -m cProfile: profiler un programme Pythonpython -m pstats: afficher les statistiques de profil générées parcProfilepython -m pickle: afficher le contenu d’un fichier pickle (haut niveau)python -m pickletools: désassembler un fichier pickle (bas niveau)
Outils moins utiles
python -m timeit: mesurer le temps d’exécution d’une expression Pythonpython -m site: afficher les informations "site" de Pythonpython -m sysconfig: afficher les détails de configuration de Pythonpython -m platform: afficher les informations sur la plateforme actuellepython -m mimetypes: afficher les informations de mimetype/extension d’un fichierpython -m quopri: encoder/décoder des données d’e-mail brutespython -m filecmp: comparer le contenu de deux répertoirespython -m tabnanny: vérifier le mélange de tabulations et d’espaces dans des fichiers Python
2 commentaires
Waouh, il y a plus de bonnes fonctionnalités que je ne le pensais, c’est top.
Je me souviens être intervenu sur un serveur Linux en environnement isolé après y avoir importé un fichier zip, et comme la commande
unzipn’était pas disponible, j’avais décompressé l’archive avec le modulepython -m zipfileavant de continuer.