работу сделал, а челику уже не надо, пусть тут будет. Как работает скрипт: Допустим у вас есть папка в которой лежат .json и .session файлы, их вам нужно рассортировать по другим папкам в корне. Открываете main.py, вводите кол-во папок, которые автоматически создадутся, и все файлы переместятся в созданные папки. Условно, у вас 400 файлов, создаёте 2 папки - в них перемещается по 200 файлов, 4 папки - по 100 файлов, и так далее. Файлы сортируются в равных кол-вах 1к1 (условно, 1.json и 1.session, 2.json и 2.session и тд). Дополнительные библиотеки установки не требуют. Работает на Python 3.9.10 СКАЧАТЬ (g. drive) Ручной код import os import shutil def main(): root_dir = os.getcwd() files = [f for f in os.listdir(root_dir) if os.path.isfile(os.path.join(root_dir, f))] #фильтр только .json и .session json_files = [f for f in files if f.endswith('.json')] session_files = [f for f in files if f.endswith('.session')] print(f"{len(json_files)} файлов .json") print(f"{len(session_files)} файлов .session") num_folders = int(input("кол-во папок которые создадутся: ")) total_files = len(json_files) + len(session_files) files_per_folder = total_files // num_folders remainder = total_files % num_folders for i in range(1, num_folders + 1): folder_name = str(i) folder_path = os.path.join(root_dir, folder_name) os.makedirs(folder_path, exist_ok=True) print(f"Создана папка: {folder_path}") all_files = sorted(json_files + session_files) start_index = 0 for i in range(1, num_folders + 1): folder_name = str(i) folder_path = os.path.join(root_dir, folder_name) end_index = start_index + files_per_folder if i <= remainder: end_index += 1 for file in all_files[start_index:end_index]: src_path = os.path.join(root_dir, file) dst_path = os.path.join(folder_path, file) shutil.move(src_path, dst_path) print(f"перемещено {end_index - start_index} файлов в {folder_name}") start_index = end_index print("разделение окончено") if __name__ == "__main__": main() Python import os import shutil def main(): root_dir = os.getcwd() files = [f for f in os.listdir(root_dir) if os.path.isfile(os.path.join(root_dir, f))] #фильтр только .json и .session json_files = [f for f in files if f.endswith('.json')] session_files = [f for f in files if f.endswith('.session')] print(f"{len(json_files)} файлов .json") print(f"{len(session_files)} файлов .session") num_folders = int(input("кол-во папок которые создадутся: ")) total_files = len(json_files) + len(session_files) files_per_folder = total_files // num_folders remainder = total_files % num_folders for i in range(1, num_folders + 1): folder_name = str(i) folder_path = os.path.join(root_dir, folder_name) os.makedirs(folder_path, exist_ok=True) print(f"Создана папка: {folder_path}") all_files = sorted(json_files + session_files) start_index = 0 for i in range(1, num_folders + 1): folder_name = str(i) folder_path = os.path.join(root_dir, folder_name) end_index = start_index + files_per_folder if i <= remainder: end_index += 1 for file in all_files[start_index:end_index]: src_path = os.path.join(root_dir, file) dst_path = os.path.join(folder_path, file) shutil.move(src_path, dst_path) print(f"перемещено {end_index - start_index} файлов в {folder_name}") start_index = end_index print("разделение окончено") if __name__ == "__main__": main()
awaw, добавь тогда хоть выбор количество различных расширений и ручной выбор через терминал, хотя думаю смысла нет