25 puntos por xguru 2024-06-05 | 2 comentarios | Compartir por WhatsApp
  • Los módulos de Python pueden usarse como herramientas de línea de comandos
    • Por ejemplo, si ejecutas el módulo webbrowser desde la línea de comandos, puedes abrir la URL indicada con el navegador web predeterminado
    • La biblioteca estándar de Python incluye muchos de estos híbridos entre módulo y script
  • Si ejecutas Python con la opción -m, el módulo de Python indicado se ejecuta como si fuera un script
    • Algunos módulos realizan alguna acción en el momento de importarse; por ejemplo, el módulo antigravity abre una historieta de XKCD en el navegador web. Si lo ejecutas desde la línea de comandos, tiene el mismo efecto que importar el módulo
    • A esto se le llama "import side effect", y la mayoría de los módulos lo evita. Los módulos con easter eggs como antigravity son la excepción
    • Los módulos que evitan los import side effects usan la variable __name__ para comportarse de forma distinta cuando se importan como módulo y cuando se ejecutan como script

Herramientas útiles de propósito general para la línea de comandos

  • python -m http.server: iniciar un servidor web simple
  • python -m webbrowser: abrir el navegador web
  • python -m json.tool: dar formato bonito a datos JSON
  • python -m calendar: mostrar un calendario en la línea de comandos

Herramientas especialmente útiles en Windows

  • python3.12 -m uuid: similar a la utilidad CLI uuidgen
  • python3.12 -m sqlite3: similar a la utilidad CLI sqlite3
  • python -m zipfile: similar a las utilidades CLI zip y unzip
  • python -m gzip: similar a las utilidades CLI gzip y gunzip
  • python -m tarfile: similar a la utilidad CLI tar

Herramientas útiles al trabajar con código Python

  • python -m pip: instalar paquetes de Python de terceros
  • python -m venv: crear un entorno virtual
  • python -m pdb: ejecutar el depurador de Python
  • python -m unittest: ejecutar pruebas de unittest
  • python -m pydoc: ver documentación
  • python -m doctest: ejecutar los doctests del archivo indicado
  • python -m ensurepip: instalar pip
  • python -m idlelib: ejecutar el REPL gráfico de IDLE
  • python -m zipapp: convertir un módulo de Python en un ZIP ejecutable
  • python -m compileall: precompilar archivos Python a bytecode

Herramientas para analizar código Python

  • python -m tokenize: descomponer un módulo de Python en tokens
  • python -m ast: mostrar el árbol de sintaxis abstracta del código
  • python -m dis: desensamblar código Python a bytecode
  • python -m inspect: inspeccionar el código fuente de objetos Python
  • python -m pyclbr: ver un resumen de los objetos de un módulo

Scripts curiosos que funcionan como easter eggs de Python

  • python -m __hello__: imprime "Hello world!"
  • python -m this: imprime The Zen of Python (PEP 20)
  • python -m antigravity: abre en el navegador web la historieta 353 de XKCD relacionada con Python
  • python -m turtledemo: muestra una demo de varios dibujos que se pueden hacer con el módulo turtle

Otras herramientas relacionadas con Python

  • python -m asyncio: ejecutar un REPL de Python con soporte para asyncio
  • python -m cProfile: perfilar un programa de Python
  • python -m pstats: ver estadísticas de perfil generadas por cProfile
  • python -m pickle: ver el contenido de archivos pickle (high-level)
  • python -m pickletools: descomponer archivos pickle (low-level)

Herramientas menos útiles

  • python -m timeit: medir el tiempo de ejecución de expresiones de Python
  • python -m site: ver información de "site" de Python
  • python -m sysconfig: ver detalles de configuración de Python
  • python -m platform: ver información de la plataforma actual
  • python -m mimetypes: ver información de mimetype/extensión de archivo
  • python -m quopri: codificar/decodificar datos raw de email
  • python -m filecmp: comparar el contenido de 2 directorios
  • python -m tabnanny: revisar mezcla de tabs y espacios en archivos Python

2 comentarios

 
han905 2024-06-11

Vaya, tiene más funciones buenas de las que pensaba, genial.

 
dhy0613 2024-06-05

Recuerdo que una vez llevé un archivo zip a un servidor Linux en una red aislada, pero no tenía el comando unzip, así que lo descomprimí con el módulo python -m zipfile y seguí adelante.