En esta entrada veremos 7 de las funciones que forman parte del módulo shutil que debes conocer. Este módulo tiene funciones para manejo de archivos y forma parte de la biblioteca estándar de Python así que para usarlo no necesitamos instalar algo adicional.
Para acceder a las funciones disponibles en el módulo shutil es necesario importarlo en nuestro código o en el interprete:
import shutil
Es posible importar solo la función que vas a utilizar, la instrucción sería:
from shutil import which
La forma de llamar la función depende de la instrucción que uses para importar el módulo. En la entrada Módulos encontrarás mas detalles de su uso.
Las funciones que veremos en esta entrada te serán útiles cuando quieras trabajar con archivos o carpetas.
1 – Función copyfile()
copyfile() nos permite copiar el contenido de un archivo sin metadatos. El primer parámetro que debemos colocar es el archivo que se copiará y el segundo es el destino en el que queremos hacer la copia. Podemos colocar las rutas de los archivos con los que queremos trabajar. Si no especificamos la ruta del archivo a copiar entonces buscará el archivo en la ubicación actual de trabajo.
shutil.copyfile("C:\\Taiga\\ProyectosconPython\\Ejemplo.txt","C:\\Taiga\\ProyectosconPython\\CopiaDeEjemplo.txt")
En caso de que coloquemos el nombre de un archivo que no existe obtendremos un error del tipo FileNotFoundError.
2 – Función copy()
copy() también genera una copia del archivo y además conserva los permisos que tenga. Al igual que con copyfile(), el primer parámetro es el archivo que se quiere copiar y el segundo es la ruta o nombre del archivo en donde se hará la copia.
shutil.copy("C:\\Taiga\\ProyectosconPython\\Ejemplo.txt","C:\\Taiga\\ProyectosconPython\\SegundaCopiaEjemplo.txt")
3 – Función copy2()
copy2() aparte de hacer la copia del archivo, permite conservar los metadato. El primer parámetro que debemos colocar es el archivo que se copiará y el segundo es el destino en el que queremos hacer la copia. Podemos colocar las rutas de los archivos con los que queremos trabajar. Si no especificamos la ruta del archivo a copiar entonces buscará el archivo en la ubicación actual de trabajo.
shutil.copy2("C:\\Taiga\\ProyectosconPython\\Ejemplo.txt","C:\\Taiga\\ProyectosconPython\\TerceraCopiaEjemplo.txt")
4 – Función copytree()
copytree() copiará de forma recursiva una carpeta con todo su contenido. El primer parámetro corresponde a la carpeta raíz que se quiere copiar. El segundo parámetro es la carpeta de destino donde se colocará la copia.
shutil.copytree("C:\\Taiga\\ProyectosconPython","C:\\Taiga\\ProyectosconPython\\Copia")
En caso de que la carpeta ya exista obtendremos un error de tipo FileExistsError.
Puedes ver un ejemplo de uso en la entrada:
5 – Función rmtree()
rmtree() elimina una carpeta así como todos los archivos o carpetas que pueda contener. Solo debemos especificar la carpeta raíz desde donde queremos que empiece a borrar. También borra las carpetas que encuentre vacías.
shutil.rmtree("C:\\Taiga\\ProyectosconPython\\Copia")
Si especificamos una carpeta que ya no se encuentra se generará un error tipo FileNotFoundError.
Puedes ver un ejemplo de uso en la entrada:
6 – Función move()
La función move() mueve una carpeta junto con todo su contenido a otra ubicación. Es posible que solo se use para mover archivos. El primer parámetro que debemos colocar el la carpeta que queremos mover y el segundo es el destino. La carpeta se eliminará de su ubicación original, ya que no hace una copia sino un cambio de ubicación.
shutil.move(""C:\\Taiga\\ProyectosconPython\\Copia", "C:\\Copia")
Puedes ver un ejemplo de uso en la entrada:
7 – Función which()
which() nos regresará la ruta en la que se encuentra el ejecutable que se invocaría al poner en una terminal o línea al invocar algún programa. El parámetro es la palabra que invocaría el programa.
shutil.which("python")
Si la palabra que colocamos no invoca nada entonces no obtendremos ninguna salida.
Hasta aquí llegamos con esta entrada sobre las 7 funciones del módulo shutil que debes conocer. ¿Hay alguna otra que creas que deba añadir? ¿Qué te ha parecido esta selección?
1 comentario en «7 funciones del módulo shutil que debes conocer»
Los comentarios están cerrados.