Diferencias entre los módulos python os y sys
os: este módulo proporciona una forma portátil de utilizar funciones relacionadas con el sistema operativo.
Este módulo proporciona una manera conveniente de utilizar las funciones del sistema operativo.
sys: este módulo proporciona acceso a algunas variables utilizadas o mantenidas por el intérprete, así como a funciones que interactúan fuertemente con el intérprete.
Este módulo proporciona acceso a variables utilizadas o mantenidas por el intérprete y funciones que interactúan con el intérprete.
En resumen, el módulo os es responsable de la interacción entre el programa y el sistema operativo y proporciona una interfaz para acceder al sistema operativo subyacente; el módulo Sys es responsable de la interacción entre el programa y el sistema operativo; el intérprete de Python y proporciona una serie de funciones para la manipulación. Funciones y variables del entorno de ejecución de Python.
Métodos comunes en sistemas operativos
Os.remove('ruta/nombre de archivo') elimina archivos.
Os.rename(nombre antiguo, nombre nuevo) cambia el nombre del archivo.
Os.walk() genera todos los nombres de archivos bajo el árbol de directorios.
Os.chdir('dirname ') cambia el directorio.
Os.mkdir/makedirs('dirname ') crea un directorio/directorio multinivel
Os.rmdir/removedirs('dirname ') elimina un directorio/directorio multinivel
Os.listdir('dirname ') enumera los archivos en el directorio especificado.
Obtiene el directorio de trabajo actual.
Os.chmod() cambia los permisos del directorio.
OS . basename('ruta/nombre de archivo') elimina la ruta del directorio y devuelve el nombre del archivo.
OS.path.dirname ('ruta/nombre de archivo ') elimina el nombre del archivo y devuelve la ruta del directorio.
OS.path.join (ruta1[, ruta2[,...]]) combina las partes separadas en una única ruta.
Os.path.split('path ') devuelve una tupla (dirname(), basename()).
Os.path.splitext() devuelve una tupla de (nombre de archivo, extensión).
Ruta OS.get time\ctime\mtime devuelve la hora del último acceso, creación y modificación respectivamente.
Os.path.getsize() devuelve el tamaño del archivo.
¿Existe os.path.exists()?
¿Es os.path.isabs() una ruta absoluta?
¿Es os.path.isdir() un directorio?
¿Es os.path.isfile() un archivo?
Método general de Sys
Lista de parámetros de la línea de comando Sys.argv, el primer elemento es la ruta del programa en sí.
Sys.modules.keys() devuelve una lista de todos los módulos importados.
Sys.exc_info() obtiene la clase de excepción que se está procesando actualmente, así como los detalles de la excepción que se están procesando actualmente mediante exc_type, exc_value y exc_traceback.
Sys.exit(n) sale del programa, sale (0) cuando sale normalmente.
Sys.hexversion obtiene el valor de la versión del intérprete de Python, el formato es 16, como 0x020403F0.
Sys.version obtiene la información de la versión del intérprete de Python.
Valor Int máximo de sys.maxint
Unicode máximo Valor Unicode máximo.
Sys.modules devuelve el campo del módulo importado por el sistema, donde clave es el nombre del módulo y valor es el módulo.
Sys.path devuelve la ruta de búsqueda del módulo y el valor de la variable de entorno PYTHONPATH se utiliza para la inicialización.
Sys.platform devuelve el nombre de la plataforma del sistema operativo.
Salida estándar Sys.stdout
Entrada estándar Sys.stdin
Salida de error Sys.stderr
Se utiliza Sys.exc_clear() Borra el mensaje de error actual o más reciente del hilo actual.
Sys.exec_prefix devuelve la ubicación de instalación de los archivos Python independientes de la plataforma.
Indicador de la regla de bytes local de sys.byteorder. El valor es "grande" para plataformas big-endian y "pequeño" para plataformas little-endian.
Sys.copyright registra cosas relacionadas con los derechos de autor de Python.
sys.api_version c Versión API del intérprete.
Entrada estándar del sistema, salida estándar del sistema, error estándar del sistema
Las variables stdin, stdout y stderr contienen objetos de flujo correspondientes a flujos de E/S estándar. Si necesita un mejor control sobre la salida, pero la impresión no cumple con sus requisitos, son lo que necesita. También puede reemplazarlos, en cuyo caso puede redirigir la salida y la entrada a otros dispositivos o manejarlos de una manera no estándar.
A menudo usamos print y raw_input para entrada e impresión, entonces, ¿cómo se asocian print y raw_input con el flujo de entrada/salida estándar?
De hecho, los flujos de entrada/salida/error estándar de los programas Python se definen en el módulo sys, a saber: sys. entrada estándar, sistema. salida estándar y sistema. error estándar.
Los siguientes programas también se pueden utilizar para ingresar y generar el mismo contenido:
Sistema de importación
sys.stdout.write('HelloWorld!')
Imprimir "Ingrese su nombre:",
name = sys . readline()[:-1]
Imprimir "¡Hola, s!" name
Entonces, ¿qué son exactamente sys.stdin, sys.stdout y stderr? Ingresamos el siguiente código en el entorno de ejecución de Python:
Importar sistema
Para f in (entrada estándar del sistema, salida estándar del sistema, error estándar del sistema): print f
El resultado es:
archivo ltopen 'ltstdin gt', modo 'r' en 892210 gt;
archivo ltopen 'lt'stdout gt', modo 'w' en 892270 gt;
ltAbra el archivo 'ltstderr gt', modo 'w en 8922 d0>;
Se puede ver que stdin, stdout, stderr no son más que atributos de archivo en Python El objeto se asocia automáticamente con la entrada, salida y error estándar en el entorno Shell cuando se inicia Python.
La redirección de E/S de los programas Python en el Shell es exactamente la misma que la redirección de los comandos de DOS mencionados al principio de este artículo. De hecho, esta redirección la proporciona el shell y no tiene nada que ver con Python en sí.
Entonces, ¿podemos redirigir las operaciones de lectura y escritura stdin, stdout, stderr y stderr a un objeto interno en un programa Python? La respuesta es sí.
Python proporciona un módulo StringIO para implementar esta idea, como por ejemplo:
Importar Strindberg desde Strindberg
Importar sistema
buff =StringIO ()
Temp =sys.stdout #Guarde el flujo de entrada y salida estándar.
Sys.stdout =buff #Redirecciona el flujo de E/S estándar al objeto buff.
Imprimir 42, 'Hola', 0.001
Sys.stdout=temp #Restaurar el flujo de E/S estándar.
imprimir buff.getvalue()
Leer el texto completo