How do I delete a file or folder in Python?
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Orient Looping
--
Chapters
00:00 How Do I Delete A File Or Folder In Python?
00:07 Accepted Answer Score 4924
00:45 Answer 2 Score 129
01:04 Answer 3 Score 101
01:22 Answer 4 Score 763
03:01 Thank you
--
Full question
https://stackoverflow.com/questions/6996...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #fileio #directory #deletefile
#avk47
ACCEPTED ANSWER
Score 4924
Use one of these methods:
pathlib.Path.unlink()removes a file or symbolic link.pathlib.Path.rmdir()removes an empty directory.shutil.rmtree()deletes a directory and all its contents.
On Python 3.3 and below, you can use these methods instead of the pathlib ones:
os.remove()removes a file.os.unlink()removes a symbolic link.os.rmdir()removes an empty directory.
ANSWER 2
Score 763
Python syntax to delete a file
import os
os.remove("/tmp/<file_name>.txt")
or
import os
os.unlink("/tmp/<file_name>.txt")
or
pathlib Library for Python version >= 3.4
file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()
Path.unlink(missing_ok=False)
Unlink method used to remove the file or the symbolik link.
- If missing_ok is false (the default), FileNotFoundError is raised if the path does not exist.
 - If missing_ok is true, FileNotFoundError exceptions will be ignored (same behavior as the POSIX rm -f command).
 - Changed in version 3.8: The missing_ok parameter was added.
 
Best practice
First, check if the file or folder exists and then delete it. You can achieve this in two ways:
os.path.isfile("/path/to/file")- Use 
exception handling. 
EXAMPLE for os.path.isfile
#!/usr/bin/python
import os
myfile = "/tmp/foo.txt"
# If file exists, delete it.
if os.path.isfile(myfile):
    os.remove(myfile)
else:
    # If it fails, inform the user.
    print("Error: %s file not found" % myfile)
Exception Handling
#!/usr/bin/python
import os
# Get input.
myfile = raw_input("Enter file name to delete: ")
# Try to delete the file.
try:
    os.remove(myfile)
except OSError as e:
    # If it fails, inform the user.
    print("Error: %s - %s." % (e.filename, e.strerror))
Respective output
Enter file name to delete : demo.txt Error: demo.txt - No such file or directory. Enter file name to delete : rrr.txt Error: rrr.txt - Operation not permitted. Enter file name to delete : foo.txt
Python syntax to delete a folder
shutil.rmtree()
Example for shutil.rmtree()
#!/usr/bin/python
import os
import sys
import shutil
# Get directory name
mydir = raw_input("Enter directory name: ")
# Try to remove the tree; if it fails, throw an error using try...except.
try:
    shutil.rmtree(mydir)
except OSError as e:
    print("Error: %s - %s." % (e.filename, e.strerror))
ANSWER 3
Score 129
Use
shutil.rmtree(path[, ignore_errors[, onerror]])
(See complete documentation on shutil) and/or
os.remove
and
os.rmdir
(Complete documentation on os.)
ANSWER 4
Score 101
Here is a robust function that uses both os.remove and shutil.rmtree:
def remove(path):
    """ param <path> could either be relative or absolute. """
    if os.path.isfile(path) or os.path.islink(path):
        os.remove(path)  # remove the file
    elif os.path.isdir(path):
        shutil.rmtree(path)  # remove dir and all contains
    else:
        raise ValueError("file {} is not a file or dir.".format(path))