I have folders whose names are just increasing integers: The folders are stored in 'dirName'
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