Python: Delete / Remove Files

by on February 27, 2013 · 3 comments· LAST UPDATED April 11, 2014

in , ,

How do I delete a file called /tmp/foo.txt using Python programming language under MS-Windows or Unix like operating systems?

You can use either remove("/path/to/file") or unlink("/file/path") to remove (delete) the file path.
Tutorial details
DifficultyEasy (rss)
Root privilegesNo
RequirementsPython
Estimated completion time2m

Syntax: Python delete file

import os
os.remove("/tmp/foo.txt")

OR

import os
os.unlink("/tmp/foo.txt")

Examples: How can I delete a file or folder in Python?

A better option is to use os.path.isfile("/path/to/file") to check for whether the file exists or not:

 
#!/usr/bin/python
import os
myfile="/tmp/foo.txt"
 
## if file exists, delete it ##
if os.path.isfile(myfile):
        os.remove(myfile)
else:    ## Show an error ##
        print("Error: %s file not found" % myfile)
 

Or use try:...except OSError as follows to detect error while deleting the file:

 
#!/usr/bin/python
import os
 
## get input ##
myfile= raw_input("Enter file name to delete : ")
 
## try to delete file ##
try:
        os.remove(myfile)
except OSError, e:  ## if failed, report it back to the user ##
        print ("Error: %s - %s." % (e.filename,e.strerror))
 

Sample outputs:

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 

A note about deleting an entire directory tree in Python using shutil.rmtree()

Use shutil.rmtree() to delete an entire directory tree; path must point to a directory (but not a symbolic link to a directory). The syntax is:

 
inport shutil
## syntax ##
shutil.rmtree(path)
shutil.rmtree(path[, ignore_errors[, onerror]])
 

In this example, delete /nas01/nixcraft/oldfiles/ directory and all its files:

 
#!/usr/bin/python
import os
import sys
import shutil
 
# Get dir name
mydir= raw_input("Enter directory name : ")
 
## Try to remove tree; if failed show an error using try...except on screen
try:
	shutil.rmtree(mydir)
except OSError, e:
	print ("Error: %s - %s." % (e.filename,e.strerror))
 

Sample outputs:

Enter directory name : /tmp/foobar/
Error: /tmp/foobar/ - No such file or directory.
Enter directory name : /nas01/nixcraft/oldfiles/
Enter directory name : bar.txt
Error: bar.txt - Not a directory.
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 3 comments… read them below or add one }

1 meow March 1, 2013 at 12:36 pm

The best way deleting files within Python is using shutil module, so this article is sorta useless.

Reply

2 meooooow March 5, 2013 at 3:24 pm

TIMTOWTDIBSCINABTE …

Reply

3 meow March 1, 2013 at 12:42 pm

and note that you’d better using “tempfile” module to work with temporary files, it is secure and does more stuff automatically for you.

Reply

Leave a Comment

Tagged as: , , ,

Previous Faq:

Next Faq: