¿Dónde se usa Python?
Estos son algunos ejemplos de cómo se usa Python en diferentes proyectos
-
Administración de servidores y DevOps
- Archivos de configuración. Python ya incluye herramientas para leer y escribir archivos: en formato
.ini/.cfg con el módulo configparser, archivos .csv con el módulo csv, archivos toml con el módulo tomlib (pero sólo a partir de la version 3.11, para versiones anteriores hay que instalarla con pip, como librería externa), archivos .xml con el módulo xml y archivos json con el módulo json.
- Expresiones regulares. Es muy común buscar y filtrar archivos de texto usando cadenas y patrones de texto; para esto puedes usar el módulo re.
- Criptografía y encripción. Python ya trae el módulo hashlib y tambien puedes instalar el paquete externo cryptography que contiene interfaces para diferentes algoritmos criptográficos.
- Los módulos os y os.path. Estos son dos de los módulos más usados de la librería estándar de Python, y no solo para administración de servidores! El módulo os ofrece una interfaz genérica para interactuar con las primitivas del sistema operativo, sin importar si el SO es basado en Unix ( como lo son Linux o MacOS) o Windows. El módulo os.path es especialmente útil para trabajar con directorios y archivos.
- Los módulos sys, os y subprocess te van a servir para ejecutar programas, procesos, controlar su ejecución y usar o examinar la salida de estos programas.
- Creación de programas de línea de comandos. Los programas que escribas en Python también son scripts que se pueden ejecutar como cualquier otro programa del sistema operativo. En especial, cuando escribes programas que funcionan desde la línea de comandos, podrás usar sys.argv para acceder a los parámetros del comando directamente; pero también puedes usar argparse para hacer un proceso más complejo de los parámetros que se le mandan a tu script o librerías externas como click o fire que hacen el proceso un poco más fácil e intuitivo.
- Bitacoras (logging): Otro módulo importante, especialmente si corres algun servicio/servidor escrito en Python es el módulo logging.
- Prueba de infraestructura. Recientemente hay gente que esta usando pytest, una librería para escribir pruebas de software, para comprobar el estado de operacion de diferentes servicios como servidores web, bases de datos, etc., en conjunto con la librería pytest-testinfra.
- Otras herramientas bastante útiles escritas en Python:
- httpie - Esta herramienta es bastante útil para interactuar con servidores web e inspeccionar cabeceras, respuestas y contenido. Es como un
curl, pero con colorcitos.
- Invoke - Es una libreria para administrar tareas. Es similar a Rake de Ruby o Makefile.
- iredis - interfaz de linea de comandos (CLI) para Redis, con colorcitos y resaltado de sintaxis.
- Kube shell - shell mejorado para trabajar con la CLI de Kubernetes
- litecli - CLI para sqlite, pero con colorcitos y autocompletado.
- mycli - CLI para mysql, pero con colorcitos y autocompletado.
- pgcli - CLI para postgresql, pero con colorcitos y autocompletado.
- saws - CLI para AWS, pero con colorcitos y autocompletado.
-
Sistemas distribuidos, Paralelismo, Hilos, multiprocesos y SMP
-
Big Data / Datos grandes - Python es uno de los lenguajes más usados para procesar grandes cantidades de información.
-
Cómputo científico - Este es otra de las áreas donde más se usa Python
- Jupyter Notebook
- Estadistica
- Fisica
- Quimica
-
La nube - La mítica nube. Es muy raro algun servicio que no tenga alguna librería de Python que de acceso a sus servicios.
- AWS con boto
- Google con gcp
- open noseque
-
Interfaces gráficas de usuario:
- tkinter for TCL/TK
- Gtk+ y Gnome y libAdawita
- QT - Documentacion oficial
- Windows - Generalmente se usa tkinter, Gtk o QT. Tambien se pueden accerder a las APIs nativas de Windows usando ctypes.
- MacOS - Existe PyCocoa, que tambien usa ctypes para acceder a las APIs nativas de MacOS.
- Kivy - Es entorno de trabajo para crear IGUs/GUIs multiplataforma. Corre en Android, iOS, Linux, MacOS y Windows.
-
Interfaz con hardware y drivers
- pyserial para acceder a todo tipo de puertos seriales en diferentes plataformas.
- pyusb usa la librería libusb para tener acceso de bajo nivel a los puertos seriales de la computadora. Funciona en Windows, Linux y MacOS.
- ino - Una caja de herramientas en interfaz CLI para Arduino.
- Pingo - Es una librería con un API unificado para programar dispositivos como Raspberry Pi, pcDuino, Intel Galileo, etc.
-
Sistemas empotrados
- MicroPython - Programa microcontroladores usando Python. La plataforma referencia de micropython es pyboard, pero hay otras plataformas que pueden ejecutar micropython como la ESP32.
-
Web - Python es muy popular para programar aplicaciones web. Los frameworks más famosos son:
-
Multimedia
-
Runtimes
-
Dentro de otras aplicaciones. Muchas aplicaciones y programas empotran el interprete de python para ofrecer acceso a sus procesos y estructuras internas. Esto es util para crear plugins.
-
Videojuegos