Bootstrap FreeKB - Python (Scripting) - Remove directory using os.removedirs
Python (Scripting) - Remove directory using os.removedirs

Updated:   |  Python (Scripting) articles

There are three similar Python modules that can be used to remove a directory.

  • os.rmdir - remove a single directory (will fail if the directory is not empty)
  • os.removedirs (this article) - remove parent and child directories (will fail if the directory is not empty)
  • shutil.rmtree - remove parent and child directories (will remove even if directory is not empty)

Here is the minimal boilterplate code without error handling to remove all of the files and directories at and below the /usr/local/foo directory using os.removedirs. This will fail if the directory is not empty.

#!/usr/bin/python3
import os
os.removedirs("/usr/local/foo")

 

Here is a more practical example, with try/except/else error handling.

#!/usr/bin/python3
import os

directory = "/usr/local/foo"

if not os.path.exists(directory):
  print(f"{directory} does not exists")
else:
  try:
    os.removedirs(directory)
  except Exception as exception:
    print(f"got the following exception when attempting to rmdir {directory} - {exception}")
  else:
    print(f"successfully removed directory {directory}")

 

Be aware that if the target directory contains files or directories, the removal will fail and something like this will be returned. For this reason, I almost always instead use shutil.rmtree to remove a directory.

[Errno 39] Directory not empty: '/usr/local/foo'

 

 




Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee



Comments


Add a Comment


Please enter 70bd45 in the box below so that we can be sure you are a human.