Эффективные способы разделения файлов на четные наборы папок с помощью Python

Чтобы разделить файлы на равный набор папок с помощью Python, вы можете использовать несколько методов. Вот несколько подходов:

  1. Использование модуля shutil. Модуль shutilв Python предоставляет удобный способ копирования, перемещения и удаления файлов и каталогов. Вы можете использовать его для разделения файлов на четные наборы папок, рассчитав количество файлов в каждой папке и затем скопировав их соответствующим образом.
import os
import shutil
def split_files_into_folders(source_dir, destination_dir, num_folders):
    files = os.listdir(source_dir)
    files_per_folder = len(files) // num_folders
    for i in range(num_folders):
        folder_path = os.path.join(destination_dir, f"folder_{i+1}")
        os.makedirs(folder_path, exist_ok=True)
        for file in files[i * files_per_folder: (i+1) * files_per_folder]:
            source_file = os.path.join(source_dir, file)
            destination_file = os.path.join(folder_path, file)
            shutil.copy2(source_file, destination_file)
  1. Использование модуля glob. Модуль globпозволяет найти все пути, соответствующие указанному шаблону. Вы можете использовать его для получения файлов в исходном каталоге, а затем равномерно распределить их по отдельным папкам.
import os
import glob
import shutil
def split_files_into_folders(source_dir, destination_dir, num_folders):
    files = glob.glob(os.path.join(source_dir, "*"))
    files_per_folder = len(files) // num_folders
    for i in range(num_folders):
        folder_path = os.path.join(destination_dir, f"folder_{i+1}")
        os.makedirs(folder_path, exist_ok=True)
        for file in files[i * files_per_folder: (i+1) * files_per_folder]:
            shutil.copy2(file, folder_path)

Это всего лишь несколько способов разделить файлы на равные наборы папок с помощью Python. Вы можете выбрать подход, который лучше всего соответствует вашим требованиям.