- 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
Vaya, tiene más funciones buenas de las que pensaba, genial.
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ódulopython -m zipfiley seguí adelante.