Dividir una orden con str.split() rompe argumentos que contienen espacios o comillas. shlex.split() aplica reglas similares a shells Unix y shlex.join() produce una representación legible.
Ejemplo práctico
import shlex
command_line = 'deploy --message "stable release" --dry-run'
arguments = shlex.split(command_line)
print(arguments)
print(shlex.join(arguments))
Argumentos, no código
Al ejecutar un programa, prefiere una lista de argumentos con subprocess y shell=False. Usa shlex para analizar una sintaxis que tu aplicación decidió admitir, no para exponer un shell completo.
Portabilidad y entrada externa
Las reglas de comillas se orientan a shells POSIX y no equivalen a todos los entornos, especialmente Windows. Una cadena bien escapada aún puede solicitar una operación peligrosa; valida programa, opciones y valores permitidos.
Sigue aprendiendo
Consulta también subprocess en Python: Ejecuta Comandos con Seguridad y Argparse en Python: Crea una CLI con Subcommands. A documentación oficial de Python, consultada el 22 de julio de 2026, detalla la API y el comportamiento entre versiones.