El módulo os, Interactuando con el sistema operativo en Python
El módulo OS
en Python es una herramienta poderosa que permite a los desarrolladores interactuar con el sistema operativo de manera eficiente. Este documento explora las funcionalidades más comunes del módulo os, incluyendo la manipulación de archivos y directorios, la obtención de información del sistema y la ejecución de comandos del sistema operativo. A través de ejemplos prácticos, se demostrará cómo utilizar este módulo para facilitar tareas cotidianas en la programación.

Introducción al Módulo OS
El móduloos
de Python es una herramienta que permite la interacción directa con el sistema operativo, ofreciendo funcionalidades similares a los comandos nativos disponibles tanto en sistemas Unix como Windows. Por ejemplo, incluye funciones como mkdir
para crear directorios, replicando la funcionalidad del comando del mismo nombre en la línea de comandos.
Las operaciones principales del módulo os
se centran en el manejo de archivos y directorios, permitiendo realizar diversas tareas de gestión y manipulación de estos elementos del sistema de archivos, lo que facilita la automatización de tareas relacionadas con la organización de datos y estructura de carpetas.
Además de las funciones básicas de gestión de archivos, el móduloos
proporciona capacidades adicionales importantes como la obtención de información del sistema operativo, la gestión de procesos en ejecución y el manejo de operaciones de entrada/salida mediante descriptores de archivos, lo que lo convierte en una herramienta versátil para la administración del sistema.
¿Por Qué Usar el Módulo OS?
- Portabilidad: El código que utiliza el módulo os a menudo puede ejecutarse en diferentes sistemas operativos (como Windows, macOS y Linux) sin necesidad de modificaciones importantes. Esto se debe a que el módulo proporciona una interfaz abstracta que se encarga de las diferencias específicas del sistema.
- Acceso a funcionalidades del sistema: Te permite aprovechar las capacidades del sistema operativo directamente desde tu código Python.
- Manipulación del sistema de archivos: Facilita la creación, eliminación, renombrado y manipulación de archivos y directorios.
Trabajar con Rutas y Directorios
-
os.getcwd()
: Devuelve el directorio de trabajo actual. -
os.chdir(path)
: Cambia el directorio de trabajo a la ruta especificada. -
os.listdir(path)
: Lista los archivos y directorios en una ruta. -
os.mkdir(path)
: Crea un nuevo directorio. -
os.makedirs(path)
: Crea directorios de forma recursiva. -
os.rmdir(path)
: Elimina un directorio vacío. -
os.removedirs(path)
: Elimina directorios recursivamente. -
os.path.join(path1, path2, ...)
: Une rutas de forma independiente al sistema operativo.
Ejemplo:
import os
# Directorio actual
print("Directorio actual:", os.getcwd())
# Cambiar de directorio
os.chdir('/ruta/a/cambiar') # Cambiar según el sistema
print("Nuevo directorio:", os.getcwd())
# Crear directorios
os.mkdir('nuevo_directorio')
os.makedirs('ruta/completa/nueva', exist_ok=True)
# Listar contenido
print("Contenido del directorio:", os.listdir('.'))
Información sobre Archivos y Directorios
-
os.path.exists(path)
: Comprueba si un archivo o directorio existe. -
os.path.isfile(path
): Verifica si es un archivo. -
os.path.isdir(path)
: Verifica si es un directorio. -
os.path.getsize(path)
: Obtiene el tamaño del archivo en bytes.
Ejemplo:
import os
archivo = 'archivo.txt'
if os.path.exists(archivo):
print(f"El archivo '{archivo}' existe.")
if os.path.isfile(archivo):
print("Es un archivo.")
print("Tamaño:", os.path.getsize(archivo), "bytes")
elif os.path.isdir(archivo):
print("Es un directorio.")
else:
print("El archivo o directorio no existe.")
Manipulación de Archivos
-
os.rename(src, dst)
: Renombra un archivo o directorio. -
os.remove(path)
: Elimina un archivo. -
os.unlink(path)
: Similar a os.remove, elimina un archivo.
Ejemplo:
import os
# Renombrar archivo
os.rename('archivo_viejo.txt', 'archivo_nuevo.txt')
# Eliminar archivo
os.remove('archivo_a_eliminar.txt')
Interacción con Procesos
-
os.system(command)
: Ejecuta un comando en la línea de comandos del sistema operativo. -
os.environ
: Accede a las variables de entorno del sistema operativo.
Ejemplo:
import os
# Ejecutar comando del sistema
os.system('echo "Hola desde Python"')
# Obtener variable de entorno
print("PATH del sistema:", os.environ['PATH'])
Permisos y Propietarios
-
os.chmod(path, mode)
: Cambia los permisos de un archivo o directorio. -
os.chown(path, uid, gid)
: Cambia el propietario de un archivo o directorio (en sistemas Unix).
Ejemplo:
import stat
# Cambiar permisos
os.chmod('archivo.txt', stat.S_IREAD) # Solo lectura
Operaciones Relacionadas con el Sistema
-
os.name
: Devuelve el nombre del sistema operativo ('posix'
,'nt'
, etc.). -
os.uname()
: Información sobre el sistema (solo en Unix). -
os.cpu_count()
: Número de CPUs disponibles.
Ejemplo:
import os
print("Sistema operativo:", os.name)
if os.name == 'posix': # Solo funciona en Unix/Linux
print("Detalles del sistema:", os.uname())
print("Número de CPUs disponibles:", os.cpu_count())
Compatibilidad con Sistemas Operativos
El módulo OS
es multiplataforma, pero algunas funciones pueden no estar disponibles en todos los sistemas. Por ejemplo:
-
os.uname()
: Solo está disponible en sistemas tipo Unix. -
os.startfile(path)
: Solo está disponible en Windows.
Buenas Practicas para Usar OS
- Usar
os.path
: Siempre que sea posible, utilice las funciones de os.path para garantizar la compatibilidad multiplataforma. - Capturar excepciones: Algunas operaciones, como cambiar de directorio o eliminar archivos, pueden generar errores si la ruta no existe o no se tienen permisos.
import os
try:
os.remove('archivo.txt')
except FileNotFoundError:
print("El archivo no existe.")