sys

Python

En Python, sys es un módulo integrado que proporciona acceso a variables y funciones específicas del sistema. Permite interactuar con el intérprete de Python y el entorno de ejecución, ofreciendo funcionalidades como el manejo de argumentos de línea de comandos, la gestión de la entrada/salida estándar, y el acceso a información del sistema.

conocimientos requeridos antes de leer el articulo:

Importación y uso de Python sys

import sys # importar la libreria 

# cerrar el programa con un codigo de estado especifico.
sys.exit(0) # en este caso es un codigo de estado exitoso.
sys.exit(1) # en este caso es un codigo de estado no exitoso.
sys.exit(2) # El comando no se ejecutó debido a argumentos incorrectos o una sintaxis inválida.

# devuelve la version de python
sys.version

# devuelve la plataforma o version del sistema operativo
sys.platform

# devuelve el path de busqueda de python
sys.path

# los argumentos que se pasan por línea de comandos cuando ejecutas el programa
sys.argv[0] # representa el nombre del script
sys.argv[1] # el primer argumento que pasas al script
sys.argv[2] # el segundo argumento que pasas al script
# y asi va consecutivamente de 3,4,5,6,etc.

# la representacion de los parametros desde la terminal deberia ser algo como:
python saludo.py pepe gonzalez  
                   |          | 
    #  script    parametro 1   parametro 2
    
# para tratar la situacion de que el usuario no proporcione ningun parametro:
if len(sys.argv) < 2: # si se dan menos de 2 parametros por ejemplo
    print("Uso: python saludo.py <nombre>") # se le muestra al usuario como utilizar el programa
    sys.exit(1) # se abandona con el codigo de estado sin exito como vimos anteriormente
    
# los parametros siempre seran strings (cadenas de texto) por lo que debes hacerles un type cast dependiendo tu situacion

# devuelve el sistema operativo
sys.platform

# devuelve el entero mas grande que python puede manejar en su arquitectura
sys.maxsize

# devuelve todos los modulos importados actualmente
sys.modules

# escribe como print y puedes usarlo para escribir logs o datos que serán usados por otros programas.
sys.stdout.write("Hola mundo")

# es un input avanzado, Lee datos directamente desde la entrada estándar
sys.stdin
# para poner un ejemplo de lo anterior:
for linea in sys.stdin: # este seria nuestro programa
    print("Recibido:", linea.strip())

# la respuesta de este input avanzado al hacer echo "Hola mundo" | python script.py seria:
Recibido: Hola mundo

# mostrar errores separados de la salida estándar, útil para que herramientas automáticas no confundan errores con datos válidos.
sys.stderr.write("Ocurrio un error grave!\n")
# ejecución: python script.py 1> salida.txt 2> errores.txt
# 1 redirige la salida estándar (stdout)
# 2 redirige los errores (stderr) 

Last updated