How to delete a file or folder in Python?
How to delete a file or folder in Python?
os.remove()
removes a file.os.rmdir()
removes an empty directory.shutil.rmtree()
deletes a directory and all its contents.
Path
objects from the Python 3.4+ pathlib
module also expose these instance methods:
pathlib.Path.unlink()
removes a file or symbolic link.pathlib.Path.rmdir()
removes an empty directory.
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 whether the file or folder exists or not then only delete that file. This can be achieved in two ways :
a.os.path.isfile(/path/to/file)
b. Useexception 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: ## Show an error ##
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 failed, report it back to 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 tree; if failed show an error using try...except on screen
try:
shutil.rmtree(mydir)
except OSError as e:
print (Error: %s - %s. % (e.filename, e.strerror))
How to delete a file or folder in Python?
Use
shutil.rmtree(path[, ignore_errors[, onerror]])
(See complete documentation on shutil) and/or
os.remove
and
os.rmdir
(Complete documentation on os.)