El módulo OS de Python proporciona funciones sencillas que nos permiten interactuar y obtener información del sistema operativo e incluso controlar procesos hasta cierto límite.
Módulo OS de Python
Las funciones que proporciona el módulo OS nos permiten operar en tareas subyacentes del sistema operativo, independientemente de si es una plataforma Windows, Macintosh o Linux. En esta lección, revisaremos estas funciones y qué podemos hacer con ellas. Comencemos nuestro viaje con estas funciones y la información que ofrecen.
import os de Python
Tenga en cuenta que primero debemos importar el módulo OS en nuestro programa, solo así podremos ejecutar cualquiera de sus funciones.
os.name
Esta función devuelve el nombre del módulo OS que importa. Esto difiere según el Sistema Operativo subyacente. Actualmente, registra ‘posix’, ‘os2’, ‘ce’, ‘nt’, ‘riscos’ y ‘java’. Ejecutémoslo en el sistema:
>>> print(os.name)
posix
Claramente, esto puede producir diferentes plataformas según el intérprete.
os.environ
environ
no es una función, sino un parámetro de proceso a través del cual podemos acceder a las variables de entorno del sistema. Veamos un fragmento de código de ejemplo:
import os
output = os.environ['HOME']
print(output)
Cuando ejecutemos este script, el siguiente será el resultado: Podemos usarlo para trabajar con las variables de entorno, lee más en Configurar variable de entorno en Python.
os.execvp
execvp
es una función que permite ejecutar otros comandos en el sistema. Veamos un fragmento de código de ejemplo para esta función:
import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) + tuple(arguments)))
Para esto, simplemente creamos un script de ejemplo llamado hello.py
con el siguiente código:
print('Hello')
Cuando ejecutemos este script, esto será la salida:
os.getuid
Esta función del módulo os devuelve el ID de usuario o UID del proceso actual, como es popularmente conocido.
>>> os.getuid()
501
Entonces, el ID del proceso de la shell actual es 501.
os.rename
Con la función de renombrar de os en Python, podemos cambiar fácilmente el nombre de un archivo.
import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')
Nótese que para esto, debemos proporcionar permisos correctos a nuestro script.
os.system
La función de sistema de os en Python nos permite ejecutar un comando en el script de Python, tal como si lo estuviera ejecutando en mi shell. Por ejemplo:
import os
currentFiles = os.system("users > users.txt")
Cuando ejecuté este script, se creó un nuevo archivo en el mismo directorio con el nombre users.txt y el contenido String como ‘shubham’, ya que esto es devuelto también por la shell original: Nótese que este es un comando muy poderoso y debe usarse con precaución.
os.error
La clase de error del módulo os de Python es la clase base para errores relacionados con la E/S. Por lo tanto, podemos capturar errores de E/S utilizando OSError en la cláusula except.
import os
try:
f = open('abc.txt', 'r') # file is missing
except OSError:
print('Error')
os.getpid
Esta función devuelve el ID de proceso actual o PID, como se le conoce popularmente.
>>> os.getpid()
71622
Así, el ID de usuario del proceso de shell actual es 71622.
os.listdir
Esta función simplemente enumera los archivos y directorios presentes en el directorio de trabajo actual.
>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']
Devuelve una lista iterable de nombres de directorios y archivos.
os.uname
Esta función devuelve información que identifica el sistema operativo actual en el que se ejecuta.
>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')
Eso fue bastante detallado en realidad.
import os.path vs import os
os.path
funciona de manera extraña en realidad. Parece que os
viene con un submódulo path
, pero en realidad, os
es un módulo normal que opera con sys.module
para soportar os.path
. Veamos qué sucede detrás de escena:
- Cuando Python se inicia, carga muchos módulos en
sys.module
. - El módulo
os
también se carga cuando Python se inicia. Asigna supath
al atributo específico del móduloos
. - Inyecta
sys.modules['os.path'] = path
para que puedas hacerimport os.path
como si fuera un submódulo.
Resumen
En esta lección, aprendimos sobre varias funciones proporcionadas por el módulo OS en Python y vimos cómo funcionan. Mira más lecciones sobre Python aquí. Referencia: Documentación de la API
Source:
https://www.digitalocean.com/community/tutorials/python-os-module