Las diversas herramientas de línea de comandos de Python
(pythonmorsels.com)- Los módulos de Python pueden usarse como herramientas de línea de comandos
- Por ejemplo, si ejecutas el módulo
webbrowserdesde 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
- Por ejemplo, si ejecutas el módulo
- 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
antigravityabre 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
antigravityson 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
- Algunos módulos realizan alguna acción en el momento de importarse; por ejemplo, el módulo
Herramientas útiles de propósito general para la línea de comandos
python -m http.server: iniciar un servidor web simplepython -m webbrowser: abrir el navegador webpython -m json.tool: dar formato bonito a datos JSONpython -m calendar: mostrar un calendario en la línea de comandos
Herramientas especialmente útiles en Windows
python3.12 -m uuid: similar a la utilidad CLIuuidgenpython3.12 -m sqlite3: similar a la utilidad CLIsqlite3python -m zipfile: similar a las utilidades CLIzipyunzippython -m gzip: similar a las utilidades CLIgzipygunzippython -m tarfile: similar a la utilidad CLItar
Herramientas útiles al trabajar con código Python
python -m pip: instalar paquetes de Python de tercerospython -m venv: crear un entorno virtualpython -m pdb: ejecutar el depurador de Pythonpython -m unittest: ejecutar pruebas deunittestpython -m pydoc: ver documentaciónpython -m doctest: ejecutar los doctests del archivo indicadopython -m ensurepip: instalarpippython -m idlelib: ejecutar el REPL gráfico de IDLEpython -m zipapp: convertir un módulo de Python en un ZIP ejecutablepython -m compileall: precompilar archivos Python a bytecode
Herramientas para analizar código Python
python -m tokenize: descomponer un módulo de Python en tokenspython -m ast: mostrar el árbol de sintaxis abstracta del códigopython -m dis: desensamblar código Python a bytecodepython -m inspect: inspeccionar el código fuente de objetos Pythonpython -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 Pythonpython -m turtledemo: muestra una demo de varios dibujos que se pueden hacer con el móduloturtle
Otras herramientas relacionadas con Python
python -m asyncio: ejecutar un REPL de Python con soporte paraasynciopython -m cProfile: perfilar un programa de Pythonpython -m pstats: ver estadísticas de perfil generadas porcProfilepython -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 Pythonpython -m site: ver información de "site" de Pythonpython -m sysconfig: ver detalles de configuración de Pythonpython -m platform: ver información de la plataforma actualpython -m mimetypes: ver información de mimetype/extensión de archivopython -m quopri: codificar/decodificar datos raw de emailpython -m filecmp: comparar el contenido de 2 directoriospython -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.