Módulo Python sys

sysEs un módulo de la biblioteca estándar de Python que proporciona funciones para interactuar con el intérprete de Python y su entorno.

A través desysla librería, puedes acceder a variables y funciones relacionadas con el intérprete de Python, como argumentos de línea de comandos, entrada y salida estándar, salida del programa, etc.

Importar la librería sys

Antes de usarsysla librería, primero debes importarla. La forma de importación es la siguiente:

import sys

Ejemplo

import sys

# Lista todos los atributos y métodos del módulo os
print(dir(os))

Funciones comunes de la librería sys

1. Argumentos de línea de comandos

sys.argvEs una lista que contiene los argumentos de la línea de comandos.sys.argv[0]Es el nombre del script, y los elementos posteriores son los argumentos pasados al script.

Código de ejemplo:

Ejemplo

import sys

print("Nombre del script:", sys.argv[0])
print("Lista de argumentos:", sys.argv[1:])

Forma de ejecución:

python script.py arg1 arg2

Resultado de salida:

脚本名称: script.py
参数列表: ['arg1', 'arg2']

2. Salida del programa

sys.exit()Se utiliza para salir del programa. Puedes pasar un entero como código de estado de salida, normalmente0indica éxito, y un valor distinto de cero indica un error.

Código de ejemplo:

Ejemplo

import sys

print("Inicio del programa")
sys.exit(0)
print("Esta línea de código no se ejecutará")

3. Entrada y salida estándar

sys.stdin、sys.stdoutysys.stderrRepresentan respectivamente la entrada estándar, la salida estándar y el flujo de error estándar. Puedes redirigir estos flujos para lograr comportamientos de entrada y salida personalizados.

Código de ejemplo:

Ejemplo

import sys

# Redirigir la salida estándar a un archivo
with open('output.txt', 'w') as f:
    sys.stdout = f
    print("Este contenido se escribirá en output.txt")

# Restaurar la salida estándar
sys.stdout = sys.__stdout__
print("Este contenido se mostrará en la consola")

4. Información de la versión de Python

sys.versionysys.version_infoProporciona la información de versión del intérprete de Python actual.

Código de ejemplo:

Ejemplo

import sys

print("Versión de Python:", sys.version)
print("Información de versión:", sys.version_info)

Resultado de salida:

<code>Python 版本: 3.9.7 (default, Aug 31 2021, 13:28:12) 
[GCC 7.5.0]
版本信息: sys.version_info(major=3, minor=9, micro=7, releaselevel=&#39;final&#39;, serial=0)
</code>

5. Ruta de búsqueda de módulos

sys.pathEs una lista que contiene las rutas que el intérprete de Python busca al importar módulos. Puedes modificar esta lista para añadir rutas de búsqueda de módulos personalizadas.

Código de ejemplo:

Ejemplo

import sys

print("Ruta de búsqueda de módulos:", sys.path)
sys.path.append('/custom/path')
print("Ruta de búsqueda de módulos actualizada:", sys.path)

Atributos comunes del módulo sys

AtributoDescripción
sys.argvLista de argumentos de línea de comandos,sys.argv[0]es el nombre del script
sys.pathRuta de búsqueda de módulos de Python (PYTHONPATH)
sys.modulesDiccionario de módulos cargados
sys.platformIdentificador de plataforma del sistema operativo (por ejemplo,'win32', 'linux', 'darwin')
sys.versionInformación de versión del intérprete de Python
sys.executableRuta absoluta del intérprete de Python
sys.stdinFlujo de entrada estándar (objeto de archivo)
sys.stdoutFlujo de salida estándar (objeto de archivo)
sys.stderrFlujo de error estándar (objeto de archivo)
sys.byteorderOrden de bytes ('little'o'big')
sys.maxsizeValor entero máximo (2**31-1o2**63-1)

Métodos comunes del módulo sys

MétodoDescripción
sys.exit([status])Salir del programa,status=0indica salida normal
sys.getsizeof(obj)Devuelve el número de bytes de memoria ocupados por el objeto
sys.getdefaultencoding()Obtener la codificación de cadena predeterminada (normalmente'utf-8')
sys.setrecursionlimit(limit)Establecer el límite de profundidad de recursión (por defecto1000)
sys.getrecursionlimit()Obtener el límite actual de profundidad de recursión
sys.getrefcount(obj)Devuelve el recuento de referencias del objeto
sys.exc_info()Obtener la información de la excepción actual ((type, value, traceback))
sys.settrace(tracefunc)Establecer la función de seguimiento de depuración
sys.setprofile(profilefunc)Establecer la función de análisis de rendimiento
Otras extensiones