Os en Python
¿Qué es os en Python? {#qué-es-os-en-python}
El módulo os (Operating System) permite interactuar directamente con el sistema operativo: manejar archivos, carpetas, variables de entorno, procesos, permisos, rutas, y más.
Se importa así:
import os
1. Manejo de directorios {#manejo-de-directorios}
Ver el directorio actual {#ver-el-directorio-actual}
print(os.getcwd()) # get current working directory
Cambiar de directorio {#cambiar-de-directorio}
os.chdir("/home/fravelz/Documentos")
Listar archivos y carpetas {#listar-archivos-y-carpetas}
archivos = os.listdir(".")
print(archivos)
Crear y eliminar carpetas {#crear-y-eliminar-carpetas}
os.mkdir("nueva_carpeta") # Crear una carpeta
os.makedirs("a/b/c", exist_ok=True) # Crear carpetas anidadas
os.rmdir("nueva_carpeta") # Eliminar carpeta vacía
os.removedirs("a/b/c") # Eliminar jerarquía vacía
2. Manejo de archivos {#manejo-de-archivos}
Eliminar archivos {#eliminar-archivos}
os.remove("archivo.txt")
Renombrar o mover {#renombrar-o-mover}
os.rename("viejo.txt", "nuevo.txt")
3. Trabajar con rutas (os.path) {#trabajar-con-rutas-os.path}
Unir rutas correctamente (independiente del sistema) {#unir-rutas-correctamente-independiente-del-sistema}
ruta = os.path.join("/home/fravelz", "Documentos", "archivo.txt")
print(ruta)
Obtener el nombre o carpeta base {#obtener-el-nombre-o-carpeta-base}
print(os.path.basename("/home/fravelz/archivo.txt")) # archivo.txt
print(os.path.dirname("/home/fravelz/archivo.txt")) # /home/fravelz
Comprobar existencia {#comprobar-existencia}
print(os.path.exists("archivo.txt")) # True o False
print(os.path.isfile("archivo.txt")) # True si es archivo
print(os.path.isdir("carpeta")) # True si es carpeta
4. Variables de entorno {#variables-de-entorno}
Ver todas las variables del sistema {#ver-todas-las-variables-del-sistema}
print(os.environ)
Obtener una variable específica {#obtener-una-variable-específica}
usuario = os.getenv("USER") # En Linux/Mac
print(usuario)
Crear o modificar una variable de entorno {#crear-o-modificar-una-variable-de-entorno}
os.environ["MI_VARIABLE"] = "1234"
5. Ejecutar comandos del sistema {#ejecutar-comandos-del-sistema}
os.system("ls") # Linux/Mac
os.system("dir") # Windows
Ejemplo útil:
os.system("ping google.com -c 2")
👉 Sí quieres más control (por ejemplo, capturar la salida del comando), es mejor usar el módulo subprocess.
6. Permisos y propiedades {#permisos-y-propiedades}
os.chmod("archivo.txt", 0o777) # Dar todos los permisos
print(os.stat("archivo.txt")) # Ver información (tamaño, permisos, etc.)
7. Ejemplo práctico {#ejemplo-práctico}
Este script organiza los archivos de una carpeta en subcarpetas por tipo:
import os
ruta = "/home/fravelz/Descargas"
for archivo in os.listdir(ruta):
ruta_completa = os.path.join(ruta, archivo)
if os.path.isfile(ruta_completa):
extension = archivo.split(".")[-1]
carpeta = os.path.join(ruta, extension.upper())
os.makedirs(carpeta, exist_ok=True)
shutil.move(ruta_completa, os.path.join(carpeta, archivo))
📦 Sí tienes archivos .png, .mp3, .pdf, los moverá a carpetas “PNG”, “MP3”, “PDF”, etc.
8. Combinación con otros módulos {#combinación-con-otros-módulos}
- os + shutil → mover/copiar archivos.
- os + sys → detectar sistema operativo (sys.platform).
- os + subprocess → ejecutar comandos con control total.
9. Ejemplo: crear un script portable {#ejemplo-crear-un-script-portable}
import os
def limpiar_pantalla():
comando = "cls" if platform.system() == "Windows" else "clear"
os.system(comando)
limpiar_pantalla()
print("Pantalla limpia 😎")