Как перераспределить файлы в папках с помощью python?

Для перераспределения файлов в папках с помощью Python можно использовать модуль os и его функции os.listdir() и os.rename(). Давайте представим, что у нас есть начальная папка source_folder, содержащая файлы разного типа, и нам нужно перераспределить их по папкам на основе их расширений.

1. Сначала нужно импортировать модуль os:

import os

2. Задаем путь к начальной папке, в которой хранятся файлы, и создаем список файлов в этой папке с помощью функции os.listdir():

source_folder = 'путь_к_начальной_папке'
file_list = os.listdir(source_folder)

3. Создаем цикл for, который будет перебирать каждый файл в списке:

for file_name in file_list:

4. Для каждого файла получаем его расширение с помощью метода splitext() модуля os.path, который даст нам имя файла и его расширение:

    file_extension = os.path.splitext(file_name)[1]

5. Затем, проверяем существует ли папка с таким же названием, как расширение файла. Если она не существует, то создаем эту папку с помощью функции os.makedirs():

    destination_folder = os.path.join(source_folder, file_extension)
    if not os.path.exists(destination_folder):
        os.makedirs(destination_folder)

6. Наконец, переименовываем файлы в соответствии с папкой, в которой мы хотим их разместить, с помощью функции os.rename():

    source = os.path.join(source_folder, file_name)
    destination = os.path.join(destination_folder, file_name)
    os.rename(source, destination)

Полный код программы будет выглядеть следующим образом:

import os

source_folder = 'путь_к_начальной_папке'
file_list = os.listdir(source_folder)

for file_name in file_list:
    file_extension = os.path.splitext(file_name)[1]
    
    destination_folder = os.path.join(source_folder, file_extension)
    if not os.path.exists(destination_folder):
        os.makedirs(destination_folder)
    
    source = os.path.join(source_folder, file_name)
    destination = os.path.join(destination_folder, file_name)
    os.rename(source, destination)

После выполнения этого скрипта, файлы будут перераспределены в папках, основе их расширений.