Удалить изображения в нескольких папках (Python) - PullRequest
0 голосов
/ 09 мая 2020

Я хочу написать сценарий python для случайного сохранения только некоторых изображений в нескольких папках.

Я новичок в python и пытаюсь найти решение. Однако я пока не смог найти хороший для начала. Я был бы признателен, если бы кто-нибудь мог мне помочь. Спасибо.

1 Ответ

2 голосов
/ 09 мая 2020

Это может вам помочь. Сначала он получает список всех каталогов, а затем удаляет случайные файлы, чтобы получить только n файлов. Примечание: path_to_all_images_folder должен быть объявлен

import os
import random
def keep_n_dir(directory, n):
    files = os.listdir(directory) #You retrieve the list of names of files
    if len(files) > n: #If you already have less than n files, you do nothing
        diff = len(files) - n
        files_to_delete = random.sample(files, k=diff) #Random sample files to delete
        for file in files_to_delete: 
            os.remove(os.path.join(directory, file)) #Delete additional files

directories = os.listdir(path_to_all_images_folder)
directories = [os.path.join(path_to_all_images_folder, folder) for folder in directories]
for directory in directories:
    if os.path.isdir(directory):
        keep_n_dir(directory, n)

ВНИМАНИЕ! Этот код удаляет из каталога другие файлы. Держит только n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...