Python: mover archivos a directorios con nombre de fecha de creación y modificación

Todos entendemos lo crucial que es administrar los archivos en función de sus fechas de creación y modificación. Entonces, en este artículo, intentaremos crear un script de Python que mueva todos sus archivos a nuevos directorios en función de sus fechas de creación y modificación. Básicamente, buscará directorios y, si encuentra alguno, extraerá todos los archivos de esa carpeta, eliminará esa carpeta y luego los ordenará por fecha de creación.

Carpeta en uso:

La imagen muestra que todos los archivos y carpetas no se manejan correctamente. Este script primero extraería todos los archivos de los directorios, como el titulado Hey. Luego ordenará todos los archivos cronológicamente.

Aquí, usaremos algunos de los módulos más importantes de Python, como shutil , glob , etc. Aquí hay más información sobre los módulos:

  • glob: El módulo glob se usa para encontrar archivos/nombres de ruta que coincidan con un patrón. También se espera que, según los puntos de referencia, coincida con los nombres de ruta más rápido que las técnicas anteriores.
  • shutil : el módulo Python Shutil ofrece varios métodos para realizar operaciones de alto nivel en archivos y grupos de archivos. Es uno de los módulos de utilidad estándar de Python. Este módulo ayuda en la automatización de la copia y eliminación de archivos y carpetas.

Acercarse

  • Para cambiar el directorio y moverse al directorio donde desea colocar todos sus archivos según la fecha de modificación, use la función os.chdir .
  • Para enumerar todas las carpetas y archivos, use la función os.listdir .
  • Para obtener el directorio de trabajo actual, use el método os.getcwd .
  • Ejecute un ciclo para revisar todos los archivos dentro y fuera de los directorios.
  • Para almacenar todas las instancias de archivos, utilice la función glob.glob . Tomará el nombre del archivo o la ruta del archivo y buscará todos los archivos presentes en su interior.

Sintaxis: 

glob.glob(any_file_name o file_path+”\\”*) # 

  • Simplemente podemos mover archivos de una ubicación a otra usando el método shutil.move . Pase el nombre del archivo que se va a mover y la ruta donde se moverá.

Sintaxis:

shutil.move (archivo a mover, ruta donde se moverá el archivo)

  • Después de eliminar los archivos de la carpeta, use los métodos shutil.rmtree para eliminar la carpeta. Pase el nombre del archivo que se eliminará en la función shutil.rmtree .

Sintaxis:

shutil.rmtree (archivo a eliminar/eliminar)

  • Configure un bucle una vez más para recorrer todos los archivos.
  • Utilice time.gmtime para recuperar todos los datos sobre la creación y las modificaciones de un archivo en forma estructural.
  • Luego, uno por uno, extraiga el Año, el Mes y el Día.
  • Ejecute una condición If para ver si esa carpeta ya se ha creado; si no, créelo usando la fecha de creación del archivo como nombre.
  • Finalmente, usando la función shutil.move , mueva todos los archivos uno por uno a la carpeta recién formada.

Programa: 

Python3

# Import the following modules
import os
import time
import shutil
import datetime
import glob
 
 
# Change the directory and jump to the location
# where you want to arrange the files
os.chdir(r"C:\Users\Dell\Downloads\FireShot")
 
# List the directories and make a list
all_files = list(os.listdir())
 
# Get the current working directory
outputs = os.getcwd()
 
# Run a loop for traversing through all the
# files in the current directory
for files in all_files:
    try:
       
        # Jump to the directories files
        inputs = glob.glob(files+"\\*")
         
        # Now again run a loop for traversing through
        # all the files inside the folder
        for ele in inputs:
           
            # Now, move the files one-by-one
            shutil.move(ele, outputs)
         
        # After extracting files from the folders,
        # delete that folder
        shutil.rmtree(files)
    except:
        pass
 
# Again run a loop for traversing through all the
# files in the current directory
for files in os.listdir('.'):
     
    # Get all the details of the file creation
    # and modification
    time_format = time.gmtime(os.path.getmtime(files))
     
    # Now, extract only the Year, Month, and Day
    datetime_object = datetime.datetime.strptime(str(time_format.tm_mon), "%m")
     
    # Provide the number and find the month
    full_month_name = datetime_object.strftime(
        "%b")
     
    # Give the name of the folder
    dir_name = full_month_name + '-' + \
        str(time_format.tm_mday) + "-" + \
        str(time_format.tm_year)
 
    # Check if the folder exists or not
    if not os.path.isdir(dir_name):
        
        # If not then make the new folder
        os.mkdir(dir_name)
    dest = dir_name
     
    # Move all the files to their respective folders
    shutil.move(files, dest)
     
print("successfully moved...")

Producción:

Publicación traducida automáticamente

Artículo escrito por gittysatyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *