shutil.rmtree is used to delete directories that are not empty (remove tree).
import os
import stat
import shutil
def del_ro_dir(dir_name):
'''Remove Read Only Directories'''
for (root, dirs, files) in os.walk(dir_name, topdown=True):
os.chmod(root,
# For user ...
stat.S_IRUSR |
stat.S_IWUSR |
stat.S_IXUSR |
# For group ...
stat.S_IWGRP |
stat.S_IRGRP |
stat.S_IXGRP |
# For other ...
stat.S_IROTH |
stat.S_IWOTH |
stat.S_IXOTH
)
shutil.rmtree(dir_name)
if __name__ == '__main__':
del_ro_dir('dir_name_here')
To delete a file only, you can use the following code:
import os
import stat
def rmv_rof(file_name):
'''Remov Read Only Files'''
if os.path.exists(file_name):
os.chmod(file_name, stat.S_IWRITE)
os.remove(file_name)
else:
print('The file does not exist.')
rmv_rof('file_name_here')
You can read detailed information here:
https://docs.python.org/3/library/os.html#os.chmod
https://docs.python.org/3/library/stat.html#module-stat
https://docs.python.org/3/library/shutil.html#rmtree-example