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