Logo de fravelz

Notas de Hacking

Fravelz

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 😎")

10. Resumen de funciones más útiles {#resumen-de-funciones-más-útiles}