Как из одной папки скопировать в другую определённые файлы

мне нужно, например с папки D:\ok\files скопировать только png и jpg файлы в папку C:\Users\romaz\Desktop\images


Ответы (2 шт):

Автор решения: passant

Вот как-то примерно так:

import shutil
import os
path_s = r'D:/ok/files/'
path_d = r'C:/Users/romaz/Desktop/images/'
for file in os.listdir (path_s):
    if file.endswith(".png") or file.endswith(".jpg"):
        shutil.copyfile(path_s+file, path_d+file)

Разумеется, ко всему этому надо бы добавить реакции на исключения, но с этим, надеюсь, вы справитесь самостоятельно.

→ Ссылка
Автор решения: Komedik
def copy_files(folder1, folder2, extensions=()): # Создаём функцию. Получаем 1 и 2 папки; расширение, если требуется
    import os # Модуль для работы с OC
    import shutil # Модуль для копирования файлов
    for file in os.listdir(folder1): Получаем список файлов в 1 папке и их названия, как file
        if extensions: # Если расширения указаны
            for extention in extentions: # Присваиваем extention значения extentions поочерёдно
                if '.' not in extencion: # Если в расширении нет точки
                    extention = f'.{extention}' # Добавляем точку на всякий случай
                if extention in file: # Если файл содержит это расширение
                    cont = True
                    break
                else:
                    cont = False
            if cont: # Если cont равен True
                shutil.copyfile(f'{folder1}/{file}', f'{folder2}/{file}')
        else:
            shutil.copyfile(f'{folder1}/{file}', f'{folder2}/{file}')

way1 = 'D:\ok\files' # 1 путь
way2 = 'C:\Users\romaz\Desktop\images' # 2 путь
copy_files(way1, way2, ('.png', '.jpg'))

Вы можете использовать и способ, который дал passant, но это более функциональный способ, который можно использовать и в других кодах/частях кода.

→ Ссылка