El módulo os, Interactuando con el sistema operativo en Python
Introducción
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.")