sirimiri
sirimiri

Reputation: 539

looping through multiple folders to clear items in each folder

I have a folder that contains a lot of subfolders, with images saved as png in each folder :

For example :

emotion\angry
emotion\disgusted
emotion\fearful
emotion\happy

I can remove the images in one of the folder using the below code :

folder_path = (r'C:\Users\emotion\angry')
test = os.listdir(folder_path)
for images in test:
    if images.endswith(".png"):
        os.remove(os.path.join(folder_path, images))

How do I create a loop to loop through each subfolder in emotion/? As I do not want to manually write out all the code to clear all the folders...

Upvotes: 3

Views: 158

Answers (2)

Vazno
Vazno

Reputation: 71

    def all_dirs(directory):
        # Returning list with all directories in selected directory
        dir_list = []
        for dir in [x[0] for x in os.walk(directory)]:
            dir_list.append(dir)
        return dir_list

This solution should work for every OS.

Upvotes: 0

Mohamed Sayed
Mohamed Sayed

Reputation: 515

You can list files using glob patterns and delete them using your normal os.remove.

import os
import glob

fileList = glob.glob('C:\Users\emotion\*\*.png')

for filePath in fileList:
    try:
        os.remove(filePath)
    except:
        print("Error while deleting file : ", filePath)

Upvotes: 8

Related Questions