0

I have folders whose names are just increasing integers: The folders are stored in 'dirName' enter image description here

Some folders are empty (like folder 5) and I would like to delete them. After the deletion I would like to rename the remaining folders such that there is no gap between the numbers. (i.e. 1,2,4,6 after deletion, and 1,2,3 (4->3), 4 (6->4) after renaming).

How could I do this with python3?

EDIT: To delete a file or folder: Delete a file or folder

My Code:

# Remove empty folders
for (dirpath, dirnames, filenames) in os.walk(dirName):
for dirname in dirnames:
    try:  # works if directory is empty
        os.rmdir(dirpath + "\\" + dirname)
    except:
        pass
# Rename
iteration = 1
for (dirpath, dirnames, filenames) in os.walk(dirName):
    for dirname in dirnames:
        shutil.move(dirpath + "\\" + dirname, dirpath + "\\" + str(iteration))
        iteration += 1

...it works but it seems rather bulky... //another piece of code

# Remove empty folders
    for (dirpath, dirnames, filenames) in os.walk(dirName):
    for dirname in dirnames:
        try:  # works if directory is empty
            os.rmdir(dirpath + "\\" + dirname)
        except:
            pass
    # Rename
    iteration = 1
    for (dirpath, dirnames, filenames) in os.walk(dirName):
        if dirpath!=dirname:
            os.rename(dirpath,str(iteration))
        iteration += 1
bad_coder
  • 11,289
  • 20
  • 44
  • 72
henry
  • 875
  • 1
  • 18
  • 48

0 Answers0