Простая функция сделает свое дело:
def copyCertainFiles(source_folder, dest_folder, string_to_match, file_type=None):
# Check all files in source_folder
for filename in os.listdir(source_folder):
# Move the file if the filename contains the string to match
if file_type == None:
if string_to_match in filename:
shutil.move(os.path.join(source_folder, filename), dest_folder)
# Check if the keyword and the file type both match
elif isinstance(file_type, str):
if string_to_match in filename and file_type in filename:
shutil.move(os.path.join(source_folder, filename), dest_folder)
source_folder = полный / относительный путь к исходной папке
dest_folder = полный / относительный путь к целевой папке (необходимо создать заранее)
string_to_match = строковая основа, на которую будут скопированы файлы
file_type (необязательно) = если нужно переместить только определенный тип файла.
Вы, конечно, можете сделать эту функцию еще лучше, имея аргументы для игнорирования регистра, автоматически создавая папку назначения, если она не существует, копируя все файлы определенного типа, если не указано ключевое слово и т. Д. . Кроме того, вы также можете использовать регулярные выражения для сопоставления типов файлов, что будет гораздо более гибким.