Reputation: 1757
I'm working on some Python code. I want to remove the new_folder
including all its files at the end of program.
Can someone please guide me how I can do that? I have seen different commands like os.rmdir but it only removes the path. Here is my code:
for files in sorted(os.listdir(path)):
os.system("mv "+path+" new_folder")`
The code above will move a folder (called check) into new_folder. I want to remove that check folder from the new_folder.
Upvotes: 60
Views: 95738
Reputation: 2357
Here's my Approach:
# function that deletes all files and then folder
import glob, os
def del_folder(dir_name):
dir_path = os.getcwd() + "\{}".format(dir_name)
try:
os.rmdir(dir_path) # remove the folder
except:
print("OSError") # couldn't remove the folder because we have files inside it
finally:
# now iterate through files in that folder and delete them one by one and delete the folder at the end
try:
for filepath in os.listdir(dir_path):
os.remove(dir_path + "\{}".format(filepath))
os.rmdir(dir_path)
print("folder is deleted")
except:
print("folder is not there")
Upvotes: -1
Reputation: 3523
If you want to delete the file
import os
os.remove("path_to_file")
but you can`t delete directory by using above code if you want to remove directory then use this
import os
os.rmdir("path_to_dir")
from above command, you can delete a directory if it's empty if it's not empty then you can use shutil module
import shutil
shutil.rmtree("path_to_dir")
All above method are Python way and if you know about your operating system that this method depends on OS all above method is not dependent
import os
os.system("rm -rf _path_to_dir")
Upvotes: 112