En este artículo vamos a saber cómo organizar automáticamente la carpeta de descargas en Python .
¿Eres una persona desorganizada que sigue descargando archivos y no los organiza? Entonces, definitivamente debe consultar este artículo, ya que en este artículo discutiremos cómo organizar automáticamente la carpeta de descargas en Python. Lo que debe hacer exactamente es obtener la ruta de la carpeta de descargas y luego extraer el tipo de archivo del nombre del archivo. Una vez extraído el tipo de archivo, cree las nuevas subcarpetas dentro de la carpeta de descargas y mueva los archivos de la ruta de origen a las nuevas subcarpetas creadas ahora.
Implementación paso a paso:
Paso 1: Importar las bibliotecas
En primer lugar, importamos las bibliotecas, os y shutil . La biblioteca os proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo, mientras que la biblioteca shutil ofrece una serie de operaciones de alto nivel en archivos y colecciones de archivos.
from os import listdir from os.path import isfile, join import os import shutil
Paso 2: Obtener la ruta de la carpeta a organizar
En este paso, obtendremos la ruta de la carpeta, es decir, la carpeta de descargas.
file_path='D:\Downloads'
Paso 3: obtenga todos los archivos de la ruta en la lista
En este paso, hemos usado el ciclo for para obtener todos los nombres de archivo en la lista.
files = [f for f in listdir(file_path) if isfile(join(file_path, f))]
Paso 4: crea la lista vacía y el diccionario
Ahora, crearemos una lista vacía para almacenar el tipo de archivo, mientras que un diccionario vacío para almacenar los nuevos nombres de carpetas que se están creando.
file_list=[] filetype_dict={}
Paso 5: crea un bucle para todos los archivos
A continuación, ejecutamos un ciclo para leer todos los nombres de archivo uno por uno.
for file in files:
Paso 5.1: extraiga el tipo de archivo del nombre del archivo
Además, obtenemos el tipo de archivo del nombre por archivo dividiendo el nombre del archivo por punto y obteniendo la parte después del punto.
filetype=file.split('.')[1]
Paso 5.2: Compruebe si el tipo de archivo existe en la lista
En este paso, comprobaremos si el tipo de archivo extraído del nombre del archivo existe en la lista o no.
if filetype not in file_list:
Paso 5.2 (a): agregue el tipo de archivo en una lista si aún no está allí. Más tarde, agregue el tipo de archivo en la lista si no existe allí.
file_list.append(filetype)
Paso 5.2 (b): Asigne nombres a las carpetas recién creadas
En este paso, creamos nombres para las subcarpetas dentro de la carpeta de descargas.
new_folder_name=file_path+'/'+ filetype + '_folder'
Paso 5.2 (c): agregue el nuevo nombre de carpeta en el diccionario con los pares clave-valor
Además, agregamos los nuevos nombres de carpeta creados en el último paso con el tipo de archivo como pares clave-valor en el diccionario.
filetype_dict[str(filetype)]=str(new_folder_name)
Paso 5.2 (d): Compruebe si la subcarpeta existe o no
En este paso, verificamos si la subcarpeta con el nombre que creamos en el último paso existe o no. Si existe, entonces sal del bucle.
if os.path.isdir(new_folder_name)==True: continue
Paso 5.2 (e): Cree una nueva subcarpeta si la subcarpeta no existe
Sin embargo, si la subcarpeta no existe, creamos una nueva subcarpeta para organizar los archivos.
else: os.mkdir(new_folder_name)
Paso 6: Declarar una nueva variable
A continuación, declaramos una nueva variable, es decir, i, con el valor 1.
i=1
Paso 7: crea un bucle para todos los archivos
A continuación, ejecutamos un ciclo para leer todos los nombres de archivo uno por uno.
for file in files:
Paso 7.1: Obtenga la ruta de origen de cada archivo
Ahora, creamos una ruta de origen para cada archivo agregando el nombre del archivo a la ruta obtenida del usuario.
src_path=file_path+'/'+file
Paso 7.2: extraiga el tipo de archivo del nombre del archivo
Además, obtenemos el tipo de archivo del nombre por archivo dividiendo el nombre del archivo por punto y obteniendo la parte después del punto.
filetype=file.split('.')[1]
Paso 7.3: Compruebe si el tipo de archivo existe en el diccionario
En este paso, comprobaremos si el tipo de archivo extraído del nombre del archivo existe en el diccionario o no.
if filetype in filetype_dict.keys():
Paso 7.3 (a): Guarde la ruta de la nueva carpeta en la nueva variable
A continuación, almacenamos la ruta de la nueva carpeta del diccionario en la nueva variable titulada dest_path.
dest_path=filetype_dict[str(filetype)]
Paso 7.3 (b): Mueva el archivo de la ruta de origen a la ruta de destino
En este paso, finalmente movemos el archivo de la ruta definida por el usuario a las nuevas subcarpetas creadas por nosotros.
shutil.move(src_path,dest_path)
Paso 7.4: Imprima de dónde a dónde se está moviendo un archivo
Además, imprimimos la ruta desde la que existe el archivo antes hasta la ruta final en la que se está moviendo el archivo.
print(i,'. ',src_path + '>>>' + dest_path)
Paso 7.5: Incrementar el valor de la variable declarada
Finalmente, incrementamos el valor de la variable, es decir, i en uno.
i=i+1
Ejemplo:
Python
# Python program to automatically organize # Downloads folder in Python # Import the libraries from os import listdir from os.path import isfile, join import os import shutil # Obtain the path to be organized file_path = 'D:\Downloads' # Obtain all the files from the path in list files = [f for f in listdir(file_path) if isfile(join(file_path, f))] # Create the blank list and dictionary file_list = [] filetype_dict = {} # Create a loop for file in files: # Split the name of file from dot filetype = file.split('.')[1] # Check if the file type exists in the list if filetype not in file_list: # Add the file type in list if not already there file_list.append(filetype) # Give naming to the newly created folders new_folder_name = file_path+'/' + filetype + '_folder' # Add the new folder name in dictionary with the key value pairs filetype_dict[str(filetype)] = str(new_folder_name) # Check if the folder exists or not if os.path.isdir(new_folder_name) == True: # Come out of the loop if folder exists continue else: # Create the new folder if does not exist os.mkdir(new_folder_name) # Declare a variable with value 1 i = 1 # Create the loop for all the files for file in files: # Get the source path of each file src_path = file_path+'/'+file # Split the name of file by dot filetype = file.split('.')[1] # Check if the file type exists in the dictionary if filetype in filetype_dict.keys(): # Add the file type in dictionary if not already there dest_path = filetype_dict[str(filetype)] # Move the file from source path to destination path shutil.move(src_path, dest_path) # Print from where to where a file is being moved print(i, '. ', src_path + '>>>' + dest_path) # Increment the value of variable by 1 i = i+1
Producción: