16 puntos por xguru 2023-06-30 | 3 comentarios | Compartir por WhatsApp
  • La biblioteca estándar de Python incluye herramientas CLI ocultas que se pueden ejecutar desde la terminal
    • Se puede usar gzip, por ejemplo con python -m gzip --decompress pypi.db.gz
  • Esto es posible porque si un módulo de Python tiene un bloque if __name__ == "__main__", se puede ejecutar con python -m nombre_del_módulo
  • Algunos de los módulos que se pueden usar de esta forma
    • python -m http.server 8001
    • python -m asyncio permite usar await a nivel superior en la consola de Python
    • python -m tokenize cgi.py | head -n 10 modo de depuración del tokenizador de Python
    • python -m ast cgi.py | head -n 10 modo de depuración de AST
    • python -m json.tool permite hacer pretty print de JSON
    • python -m nntplib muestra por defecto las publicaciones más recientes del grupo de noticias gmane.comp.python.general (lamentablemente no funcionan otros grupos)
    • python -m calendar imprime el calendario de este año y con -t html también puede mostrarlo en HTML
  • Además de estas, hay muchas otras herramientas pequeñas y geniales escondidas en la biblioteca estándar de Python

3 comentarios

 
botplaysdice 2023-06-30

El servidor web resulta muy útil. En la empresa, si transfieres con scp, le aplican un throttling muy agresivo (supongo que por seguridad;;;), y el acceso por Samba también es lentísimo.... Cuando tengo que descargar archivos grandes, uso el servidor web de 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

A veces termina haciendo falta.

 
GN⁺ 2023-06-30
Opiniones en Hacker News
  • La herramienta re.Scanner de la biblioteca estándar de Python es un tokenizador basado en expresiones regulares que no aparece en la documentación oficial.
  • Esta herramienta procesa una lista de tokens de una sola vez y garantiza coincidencias consecutivas.
  • Usar el bloque if __name__ == "__main__": permite ejecutar un módulo como un solo archivo *.py.
  • Se espera que Python 3.12 incluya un CLI/REPL de SQLite en la biblioteca estándar.
  • El módulo zipfile puede usarse desde la línea de comandos para descomprimir y comprimir archivos zip.
  • El módulo json.tool puede usarse desde la línea de comandos para formatear JSON de manera legible.
  • El módulo http.server es útil para compartir archivos en una red local.
  • Usar módulos de la biblioteca estándar desde la línea de comandos puede implicar riesgos de seguridad.
  • La biblioteca estándar de Python tiene muchas herramientas y funciones ocultas que no están documentadas.