25 points par xguru 2024-06-05 | 2 commentaires | Partager sur WhatsApp
  • Les modules Python peuvent être utilisés comme outils en ligne de commande
    • Par exemple, exécuter le module webbrowser depuis 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
  • Exécuter Python avec l’option -m lance 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 antigravity ouvre 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 antigravity font 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

Outils généraux utiles en ligne de commande

  • python -m http.server : démarrer un serveur web simple
  • python -m webbrowser : lancer un navigateur web
  • python -m json.tool : formater joliment des données JSON
  • python -m calendar : afficher un calendrier en ligne de commande

Outils particulièrement utiles sous Windows

  • python3.12 -m uuid : similaire à l’utilitaire CLI uuidgen
  • python3.12 -m sqlite3 : similaire à l’utilitaire CLI sqlite3
  • python -m zipfile : similaire aux utilitaires CLI zip et unzip
  • python -m gzip : similaire aux utilitaires CLI gzip et gunzip
  • python -m tarfile : similaire à l’utilitaire CLI tar

Outils utiles pour travailler avec du code Python

  • python -m pip : installer des packages Python tiers
  • python -m venv : créer un environnement virtuel
  • python -m pdb : lancer le débogueur Python
  • python -m unittest : exécuter des tests unittest
  • python -m pydoc : consulter la documentation
  • python -m doctest : exécuter les doctests d’un fichier donné
  • python -m ensurepip : installer pip
  • python -m idlelib : lancer le REPL graphique IDLE
  • python -m zipapp : convertir un module Python en ZIP exécutable
  • python -m compileall : précompiler des fichiers Python en bytecode

Outils d’analyse de code Python

  • python -m tokenize : découper un module Python en tokens
  • python -m ast : afficher l’arbre syntaxique abstrait du code
  • python -m dis : désassembler du code Python en bytecode
  • python -m inspect : inspecter le code source d’objets Python
  • python -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 Python
  • python -m turtledemo : montre des démos de différents dessins réalisables avec le module turtle

Autres outils liés à Python

  • python -m asyncio : lancer un REPL Python avec prise en charge d’asyncio
  • python -m cProfile : profiler un programme Python
  • python -m pstats : afficher les statistiques de profil générées par cProfile
  • python -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 Python
  • python -m site : afficher les informations "site" de Python
  • python -m sysconfig : afficher les détails de configuration de Python
  • python -m platform : afficher les informations sur la plateforme actuelle
  • python -m mimetypes : afficher les informations de mimetype/extension d’un fichier
  • python -m quopri : encoder/décoder des données d’e-mail brutes
  • python -m filecmp : comparer le contenu de deux répertoires
  • python -m tabnanny : vérifier le mélange de tabulations et d’espaces dans des fichiers Python

2 commentaires

 
han905 2024-06-11

Waouh, il y a plus de bonnes fonctionnalités que je ne le pensais, c’est top.

 
dhy0613 2024-06-05

Je me souviens être intervenu sur un serveur Linux en environnement isolé après y avoir importé un fichier zip, et comme la commande unzip n’était pas disponible, j’avais décompressé l’archive avec le module python -m zipfile avant de continuer.