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
# 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
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
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
# 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
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='final', 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
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
| Atributo | Descripción |
|---|---|
sys.argv | Lista de argumentos de línea de comandos,sys.argv[0]es el nombre del script |
sys.path | Ruta de búsqueda de módulos de Python (PYTHONPATH) |
sys.modules | Diccionario de módulos cargados |
sys.platform | Identificador de plataforma del sistema operativo (por ejemplo,'win32', 'linux', 'darwin') |
sys.version | Información de versión del intérprete de Python |
sys.executable | Ruta absoluta del intérprete de Python |
sys.stdin | Flujo de entrada estándar (objeto de archivo) |
sys.stdout | Flujo de salida estándar (objeto de archivo) |
sys.stderr | Flujo de error estándar (objeto de archivo) |
sys.byteorder | Orden de bytes ('little'o'big') |
sys.maxsize | Valor entero máximo (2**31-1o2**63-1) |
Métodos comunes del módulo sys
| Método | Descripció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 |