16 points par xguru 2023-06-30 | 3 commentaires | Partager sur WhatsApp
  • La bibliothèque standard de Python inclut des outils CLI cachés qui peuvent être exécutés dans le terminal
    • Il est par exemple possible d'utiliser gzip avec python -m gzip --decompress pypi.db.gz
  • Cela est possible parce que les modules Python qui contiennent un bloc if __name__ == "__main__" peuvent être exécutés avec python -m nom_du_module
  • Quelques-uns des modules qui peuvent être utilisés ainsi
    • python -m http.server 8001
    • python -m asyncio permet d'utiliser await au niveau supérieur dans la console Python
    • python -m tokenize cgi.py | head -n 10 mode debug du tokenizer Python
    • python -m ast cgi.py | head -n 10 mode debug de l'AST
    • python -m json.tool permet de faire un pretty print de JSON
    • python -m nntplib affiche par défaut les derniers messages du groupe de discussion gmane.comp.python.general (malheureusement, les autres groupes ne sont pas pris en charge)
    • python -m calendar affiche le calendrier de l'année en cours, avec une sortie HTML possible via -t html
  • La bibliothèque standard de Python cache bien d'autres petits outils très utiles

3 commentaires

 
botplaysdice 2023-06-30

Le serveur web est bien pratique. Au bureau, quand on transfère via scp, le débit est fortement bridé (sans doute pour des raisons de sécurité;;;), et l'accès Samba est aussi extrêmement lent.... Donc quand il faut récupérer de gros fichiers, on passe par le serveur web Python....

 
mckabi 2023-06-30
  • python -m base64 : echo "test string" | python -m base64 -e | python -m base64 -d
  • python -m imghdr IMAGE_FILENAME
  • python -m sndhdr SOUND_FILENAME
  • tarfile, gzip, zip
  • locale, platform, sysconfig
  • python -m inspect PYTHON_PKG

On finit parfois par en avoir besoin.

 
GN⁺ 2023-06-30
Avis Hacker News
  • L’outil re.Scanner de la bibliothèque standard Python est un tokenizer basé sur des expressions régulières, absent de la documentation officielle.
  • Cet outil traite une liste de tokens en une seule fois et garantit des correspondances consécutives.
  • L’utilisation d’un bloc if __name__ == "__main__": permet d’exécuter un module comme un fichier *.py autonome.
  • Python 3.12 devrait inclure une CLI/REPL SQLite dans la bibliothèque standard.
  • Le module zipfile peut être utilisé en ligne de commande pour compresser et décompresser des fichiers zip.
  • Le module json.tool peut être utilisé en ligne de commande pour afficher joliment du JSON.
  • Le module http.server est utile pour partager des fichiers sur un réseau local.
  • L’utilisation des modules de la bibliothèque standard en ligne de commande peut présenter des risques de sécurité.
  • La bibliothèque standard Python contient de nombreux outils et fonctionnalités cachés non documentés.