CodeGym /Cursos /Python SELF ES /Trabajando con archivos en disco

Trabajando con archivos en disco

Python SELF ES
Nivel 21 , Lección 5
Disponible

6.1 Trabajando con archivos

Python ofrece muchas funciones y módulos incorporados para trabajar con archivos y directorios. Las operaciones principales se realizan usando módulos incorporados como os, shutil y otros.

Tres operaciones principales con archivos:

  • Copiar
  • Mover
  • Eliminar

Para realizar estas operaciones, el módulo shutil encaja perfectamente.

Copiar un archivo


import shutil

shutil.copy('source.txt', 'destination.txt')
        

Mover un archivo


import shutil

shutil.move('source.txt', 'destination.txt')
        

Eliminar un archivo


import os

os.remove('example.txt')
        

Más fácil que nunca.

6.2 Comprobación de existencia de archivo

Muy a menudo es necesario verificar si un archivo específico existe o no. Para esto, el módulo os tiene un método especial — exists().

Comprobación de existencia de archivo


import os

if os.path.exists('example.txt'):
    print("El archivo existe")
else:
    print("El archivo no existe")
    # Si el archivo no existe, el programa ejecutará las acciones descritas en el bloque else.
    # Por ejemplo, puedes mostrar una advertencia, crear un nuevo archivo o salir del programa.

        

Si el archivo no existe, el programa puede manejarlo con condiciones o lanzar una excepción.

6.3 Comprobación del tipo de objeto: archivo o directorio

Muy a menudo es necesario verificar si un objeto es un archivo o un directorio. Por ejemplo, si estás leyendo todo el contenido de un directorio y los archivos deben procesarse de una manera, y los directorios de otra.

Para tales casos, hay dos métodos especiales: isdir(), que verifica si un objeto es un directorio, y isfile(), que verifica si un objeto es un archivo.

Comprobación — es un directorio o no


if os.path.isdir('example_directory'):
    print("Es un directorio")
else:
    print("No es un directorio")
        

Comprobación — es un archivo o no


if os.path.isfile('example_file'):
    print("Es un archivo")
else:
    print("No es un archivo")
        

Son funciones muy útiles que usarás más de lo que piensas. :)

6.4 Trabajando con rutas

El módulo os tiene un submódulo os.path, que contiene funciones útiles para trabajar con archivos y directorios. Aquí algunas de ellas:

Obtención de la extensión de archivo

La función splitext() divide el nombre del archivo en dos partes y devuelve una lista de dos elementos: el nombre y la extensión.


import os.path

# Obtención de la extensión de archivo
file_path = 'example.txt'
file_extension = os.path.splitext(file_path)[1]
print(f"Extensión de archivo: {file_extension}")
        

Obtención del nombre de archivo sin extensión


import os.path

# Obtención del nombre de archivo sin extensión
file_path = 'example.txt'
file_name = os.path.splitext(os.path.basename(file_path))[0]
print(f"Nombre de archivo sin extensión: {file_name}")
        

Obtención del nombre de archivo desde la ruta

La función basename() devuelve solo el nombre del archivo, quitando toda la ruta.


import os.path

# Obtención del nombre de archivo desde la ruta
file_path = '/path/to/example.txt'
file_name = os.path.basename(file_path)
print(f"Nombre de archivo: {file_name}")
        

Obtención del directorio desde la ruta

También es fácil obtener solo el directorio del nombre del archivo usando la función dirname().


import os.path

# Obtención del directorio desde la ruta
file_path = '/path/to/example.txt'
directory = os.path.dirname(file_path)
print(f"Directorio: {directory}")
        

Unión de rutas

Si tienes un directorio y un nombre de archivo por separado, puedes obtener la ruta completa a ese archivo.


import os.path

# Unión de rutas
directory = '/path/to'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Ruta completa: {full_path}")
        

6.5 Rutas independientes de la plataforma

Al trabajar con rutas, es importante considerar las diferencias entre los sistemas operativos. Los separadores de ruta pueden variar, y el código que funciona en una plataforma puede no funcionar en otra. Para evitar problemas al transferir código entre diferentes sistemas operativos, utiliza funciones como os.path.join(), os.path.abspath() y os.path.dirname(), que aseguran compatibilidad con varias plataformas.

Por ejemplo:


import os

# Unión de rutas de manera independiente de la plataforma
directory = 'some_directory'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Ruta completa: {full_path}")
        

Obtención de la ruta absoluta

Si solo tienes una ruta relativa al directorio de trabajo actual, pero deseas convertirla en absoluta, para esto está la función abspath().


import os.path

# Obtención de la ruta absoluta
relative_path = 'example.txt'
absolute_path = os.path.abspath(relative_path)
print(f"Ruta absoluta: {absolute_path}")
        

¡Importante! Siempre utiliza funciones del sistema al trabajar con rutas, ya que tu código podría ejecutarse en otro sistema operativo, donde el separador de archivos no es \, sino /, o donde están prohibidos «:» en rutas o cualquier otra cosa.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION