Módulo Sys de Python

El módulo sys da acceso a detalles del tiempo de ejecución de Python, como los argumentos de línea de comandos, la ruta de importación y la versión actual del intérprete.

import sys

Usa sys cuando tu código necesite hablar con el propio intérprete de Python, no solo con los objetos de tu aplicación.

Argumentos de línea de comandos

sys.argv es una lista de argumentos pasados al script actual.

import sys

sys.argv = ['main.py', '--debug', 'app']
print(sys.argv[0])
print(sys.argv[1:])
main.py
['--debug', 'app']

Para aplicaciones reales de línea de comandos, prefiere argparse. Se basa en la misma idea, pero añade validación y mensajes de ayuda.

Versión de Python

import sys

print(sys.version_info.major)
print(sys.version_info.minor)
3
14

Ruta de búsqueda de importación

sys.path controla dónde busca Python los módulos.

import sys

print(type(sys.path).__name__)
print(len(sys.path) > 0)
list
True

Las primeras entradas de sys.path suelen incluir tu proyecto actual, por eso se pueden importar módulos locales.

Entrada y salida estándar

sys.stdin, sys.stdout y sys.stderr son objetos similares a archivos que utiliza el intérprete.

import sys

print(sys.stdout.writable())
print(sys.stderr.writable())
True
True

Salir de un programa

import sys

try:
    sys.exit(0)
except SystemExit as exc:
    print(exc.code)
0

Enlaces relacionados