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