Загрузка...

Скрипт Сортер файлов по папкам

Тема в разделе Python создана пользователем awaw 30 май 2025. 102 просмотра

Загрузка...
  1. awaw
    awaw Автор темы 30 май 2025 продаю ****** lolz.live/threads/8787685/ :peace: 7932 8 окт 2017
    работу сделал, а челику уже не надо, пусть тут будет. :despair:
    Как работает скрипт:
    Допустим у вас есть папка в которой лежат .json и .session файлы, их вам нужно рассортировать по другим папкам в корне. Открываете main.py, вводите кол-во папок, которые автоматически создадутся, и все файлы переместятся в созданные папки.
    Условно, у вас 400 файлов, создаёте 2 папки - в них перемещается по 200 файлов, 4 папки - по 100 файлов, и так далее. Файлы сортируются в равных кол-вах 1к1 (условно, 1.json и 1.session, 2.json и 2.session и тд).
    Дополнительные библиотеки установки не требуют. Работает на Python 3.9.10


    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()
    [IMG][IMG]
    [IMG]
     
  2. APT29388
    а нахуя оно надо? просто даже хз, где может пригодиться(
     
    1. awaw Автор темы
      APT29388, я тоже, но кому-то было нужно
    2. APT29388
      awaw, добавь тогда хоть выбор количество различных расширений и ручной выбор через терминал, хотя думаю смысла нет
Top