Saltar al contenido

Cómo copiar y mover archivos con Shutil.

¿Qué es Shutil?

El módulo shutil le ayuda a automatizar la copia de archivos y directorios.

Esto guarda los pasos de abrir, leer, escribir y cerrar archivos cuando no hay un procesamiento real.

Es un módulo de utilidad que se puede utilizar para realizar tareas, tales como: copiar, mover o eliminar árboles de directorios.

shutil. copiar (src, dest)

# Basically the unix command cp src dst. 

# this copies the source file to the destination directory

# the destination directory has to exist

# if the filename already exists there, it will be overwritten

# access time and last modification time will be updated

# the same filename is used

# the permissions of the file are copied along with the contents.

import shutil
import os
source = os.listdir("/tmp/")
destination = "/tmp/newfolder/"
for files in source:
    if files.endswith(".txt"):
        shutil.copy(files,destination)

###########
shutil.copyfile ( src , dest )
# copy data from src to dest 

# both names must be files.

# copy files by name 
import shutil  
shutil.copyfile('/path/to/file', '/path/to/other/phile') 
 
############
shutil.move
# recursively move a file or directory (src) to another location (dst).

# if the destination is a directory or a symlink to a directory, then src is moved
inside that directory.

# the destination directory must not already exist.

# this would move files ending with .txt to the destination path
import shutil
import os
source = os.listdir("/tmp/")
destination = "/tmp/newfolder/"
for files in source:
    if files.endswith(".txt"):
        shutil.move(files,destination)

####################
shutil.copytree ( src , dest )
# recursively copy the entire directory tree rooted at src to dest. 

# dest must not already exist. 

# errors are reported to standard output.

####################
import shutil
import os
SOURCE = "samples"
BACKUP = "samples-bak"
# create a backup directory
shutil.copytree(SOURCE, BACKUP)
print os.listdir(BACKUP)

####################
shutil.rmtree ( path )

# recursively delete a directory tree.
# This removes the directory 'three' and anything beneath it in the filesystem.
import shutil
shutil.rmtree('one/two/three')

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.