Manejo de rutas y archivos con el módulo pathlib de Python

De ChuWiki


¿Qué es el módulo pathlib de Python?[editar]

El módulo `pathlib` simplifica varias tareas comunes relacionadas con rutas de archivos y directorios. Crear ficheros y rutas, saber si existen, verificar su extensión, etc.

Crear Objetos Path[editar]

El objeto Path representa un path de un archivo o directorio en nuestro sistema de ficheros. En el siguiente ejemplo creamos una instancia de Path.

from pathlib import Path

# Crear un objeto Path
ruta = Path('mi_directorio/mi_archivo.txt')

print(ruta)
# Salida: mi_directorio/mi_archivo.txt

Comprobar Existencia y Tipos[editar]

Una vez creado, podemos verificar si existe, si es un fichero o un directorio.

from pathlib import Path

ruta = Path('mi_directorio/mi_archivo.txt')

# Comprobar si la ruta existe
print(ruta.exists())
# Salida: False (suponiendo que la ruta no existe)

# Comprobar si es un archivo
print(ruta.is_file())
# Salida: False

# Comprobar si es un directorio
print(ruta.is_dir())
# Salida: False

Crear Directorios[editar]

Si es un directorio y no existe, podemos crearlo. Si en parents ponemos True, se generará también cualquier directorio padre que no exista.

from pathlib import Path

# Crear un nuevo directorio
ruta_directorio = Path('directorio_padre/mi_nuevo_directorio')
ruta_directorio.mkdir(parents=True, exist_ok=True)

print(f"Directorio creado: {ruta_directorio}")

Navegar por el Sistema de Archivos[editar]

Si es un directorio, podemos consultar que ficheros o subdirectorios hay en dicho directorio.

from pathlib import Path

# Navegar por el sistema de archivos
ruta = Path('mi_directorio')

# Listar todos los archivos y directorios en la ruta
for item in ruta.iterdir():
    print(item)

Leer y Escribir Archivos[editar]

Si es un fichero, podemos escribir o leer de él.

from pathlib import Path

ruta = Path('mi_archivo.txt')

# Escribir en un archivo
ruta.write_text('Hola, mundo!')

# Leer desde un archivo
contenido = ruta.read_text()
print(contenido)
# Salida: Hola, mundo!

Trabajar con Rutas Absolutas y Relativas[editar]

A partir de una ruta relativa, podemos obtener la ruta absoluta de dicho fichero o directorio.

from pathlib import Path

ruta_relativa = Path('mi_directorio/mi_archivo.txt')

# Obtener la ruta absoluta
ruta_absoluta = ruta_relativa.resolve()
print(ruta_absoluta)
# Salida: /ruta/completa/a/mi_directorio/mi_archivo.txt (dependerá del sistema)

Consulta de Rutas[editar]

A partir de un Path de un fichero podemos hacer algunas consultas, como el nombre del fichero, la extensión, el directorio padre, etc.

from pathlib import Path

ruta = Path('mi_directorio/mi_archivo.txt')

# Obtener el nombre del archivo
print(ruta.name)
# Salida: mi_archivo.txt

# Obtener la extensión del archivo
print(ruta.suffix)
# Salida: .txt

# Obtener el directorio padre
print(ruta.parent)
# Salida: mi_directorio