Organiza automáticamente la carpeta de descargas en Python

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:

Publicación traducida automáticamente

Artículo escrito por vin8rai 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 *