Bloques de construcción de aplicaciones¶
La fuerza de la biblioteca estándar de Python es su tamaño. Incluye implementaciones de tantos aspectos de la estructura de un programa que los desarrolladores pueden concentrarse en lo que hace que su aplicación sea única, en lugar de tener que escribir todas las piezas básicas una y otra vez de nuevo. Este capítulo cubre algunos de los bloques de construcción que resuelven problemas comunes a tantas aplicaciones más frecuentemente reutilizados.
argparse
es una interfaz para analizar y validar argumentos de la línea
de comando. Soporta la conversión de argumentos de cadenas a enteros y otros
tipos, ejecutando funciones de devolución de llamada cuando una opción es
encontrada, estableciendo valores por defecto para las opciones no provistas
por el usuario, y automáticamente produciendo instrucciones de uso para un
programa. getopt
implementa el modelo de procesamiento de argumentos de
bajo nivel disponible para los programas C y las secuencias de comandos de
shell. Tiene menos funciones que otras bibliotecas de análisis de opciones,
pero su simplicidad y la familiaridad lo convierten en una opción popular.
Programas interactivos deberían usar readline
para darle al usuario un
símbolo del sistema. Incluye herramientas para administrar el historial,
autocompletar partes de comandos y editar interactivamente con atajos de
teclado emacs
y vi
. Para solicitar de forma segura al usuario para una
contraseña u otro valor secreto, sin hacer eco del valor a la pantalla a medida
que se escribe, usa getpass
.
El módulo cmd
incluye un marco de trabajo para programas de estilo shell
interactivo basados en comandos. Proporciona el bucle principal y maneja la
interacción con el usuario y la aplicación solo necesita implementar las
devoluciones de llamadas de procesamiento para los comandos individuales.
shlex
es un analizador para la sintaxis estilo shell, con líneas
compuestas de simbólicos separados por espacios en blanco. Es inteligente
sobre citas y secuencias de escape, así que el texto con espacios integrados se
trata como un solo simbólico. shlex
funciona bien como el tokenizer para
lenguajes específicos del dominio como archivos de configuración o lenguajes de
programación.
Es fácil administrar los archivos de configuración de aplicación con
configparser
. Puede guardar las preferencias del usuario entre
ejecuciones del programa y las lee la próxima vez que se inicia una aplicación,
o incluso servir como un formato simple de archivo de datos.
Las aplicaciones que se despliegan en el mundo real deben darles a sus usuarios
información de depuración. Los mensajes de error simples y los rastreos son
útiles, pero cuando es difícil reproducir un problema por completo, un registro
de actividad completo puede apuntar directamente a la cadena de eventos que
conduce a una falla. El módulo logging
incluye una interfaz completa
que gestiona archivos de registro, admite múltiples hilos e incluso se comunica
con demonios de registro remoto para registro centralizado.
Uno de los patrones más comunes para los programas en entornos Unix es un
filtro de línea por línea que lee los datos, los modifica y los vuelve a
escribir de vuelta. Leer de archivos es bastante simple, pero puede que no
haya una manera más fácil de crear una aplicación de filtro que mediante el uso
del módulo fileinput
. Su interfaz es un iterador de línea que produce
cada línea de entrada, por lo que el cuerpo principal del programa es un simple
bucle for
. El módulo maneja el análisis de los argumentos de la línea de
comando para que los nombres de archivo sean procesados, o volviendo a leer
directamente desde la entrada estándar, así que las herramientas creadas en
fileinput
se pueden ejecutar directamente en un archivo o como parte de una
fuente de información.
Usa atexit
para programar las funciones que se ejecutarán cuando el
intérprete esté cerrando un programa. Registrar devoluciones de llamadas de
salida es útil para liberar recursos al cerrar sesiones en servicios remotos,
cerrar archivos, etc.
El módulo sched
implementa un programador para desencadenar eventos en
tiempos establecidos en el futuro. La interfaz no dicta la definición de
«tiempo», así que cualquier cosa, desde el verdadero tiempo del reloj hasta
pasos del intérprete pueden ser usados.
- argparse — Análisis de opciones y argumentos de línea de comando
- getopt — Análisis de opciones de línea de comando
- readline — La biblioteca readline de GNU
- getpass —Solicitud segura de contraseña
- cmd — Procesadores de comando orientados a líneas
- shlex — Análisis de sintaxis de estilo shell
- configparser — Trabajar con archivos de configuración
- logging — Informe de estado, error y mensajes informativos
- fileinput — Marco de filtro de línea de comandos
- atexit — Devoluciones de llamada de salida para programas
- sched — Programador de eventos cronometrados