How to merge folders in every subdirectory using python code?

Question:

my directory now.[1]
I want to combine every Sub in every Folder so it should look something like this [2]
[1]: https://i.stack.imgur.com/xz7FJ.png
[2]: https://i.stack.imgur.com/scK48.png

Asked By: mayuresh

||

Answers:

You can iterate through all the files/dirs in a directory using os.walk().

We are just iterating over all files in a dir and then moving them to a destination directory using os.rename()

import os
directory = '/tmp/dataset'

def move_all_files_to_destination_dir(original_dir, destination_dir):
    # moves all NESTED files in original_dir to destination_dir
    files = []
    for root, dirs, files in os.walk(original_dir):
        for name in files:
            os.rename(root + os.sep + name, destination_dir + os.sep + name)
    
subdirs = [f.path for f in os.scandir(directory) if f.is_dir()]   # [Folder1, Folder2]
for d in subdirs:
    move_all_files_to_destination_dir(d, d)
    # remove the subdirectories of d after we have moved all files under it
    for sub in os.scandir(d):
        if sub.is_dir():
            shutil.rmtree(sub)
Answered By: Jay