Как из одной папки скопировать в другую определённые файлы
мне нужно, например с папки 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, но это более функциональный способ, который можно использовать и в других кодах/частях кода.