37
Python Delete File – Step-by-Step Guide
ItsMyCode |
Python has several built-in modules that allow you to delete a file or remove directories.
This tutorial is a step-by-step guide to remove a file or directory using 3 different methods.
os
moduleshutil
modulepathlib
moduleLet’s look at each of these modules and the functions we can utilize to delete a directory or files.
The
os
module is a built-in utility available in both Python 2 and 3 versions, and it provides functions to interact easily with the operating system.os.remove()
is used to remove or delete a file in Python. This method cannot remove a directory, and if you try giving a directory as a path, it throws an OSError._Syntax – _os.remove(path, *, dir_fd = None)
Parameters: It takes a file path as an input parameter, and the path can be of a type string. The function does not return anything.
# Import os module
import os
filePath='/Projects/Tryouts/test/python.txt'
# check whethere the provided filepath exists and if its of file type
if os.path.isfile(filePath):
# delete the file using remove function
os.remove(filePath)
print("Successfully deleted a file")
else:
print("File doesn't exists!")
Output
Successfully deleted a file
Note – If you do not check for
isFile
or specify an invalid path to the os.remove()
method, Python will throw a FileNotFoundError
as shown below.Traceback (most recent call last):
File "c:\Projects\Tryouts\main.py", line 3, in <module>
os.remove(filePath)
FileNotFoundError: [WinError 2] The system cannot find the file specified: '/Projects/Tryouts/test/path_does_not_exsist.txt'
The os module has an
os.rmdir()
method to remove or delete an empty directory. ** If the directory does not exist or is found not empty, you will get an **OSError.Syntax: os.rmdir(path, *, dir_fd = None)
Parameters: It takes a folder path as an input parameter, and the path can be of a type string. The function does not return anything.
Note – If you do not check for
isdir
or specify an invalid path to the os.rmdir()
*method, Python will throw a *FileNotFoundError
as shown below.# Import os module
import os
folderPath='/Projects/Tryouts/test/'
# check whethere the provided folder path exists and if its of directory type
if os.path.isdir(folderPath):
# delete the folder using rmdir function
os.rmdir(folderPath)
print("Successfully deleted a folder")
else:
print("Folder doesn't exists!")
Output
Successfully deleted a folder
The drawback in the
os
module was you cannot delete an entire directory with contents inside it. If you want to delete a directory and remove all the files inside it recursively, you should use shutil.rmtree()
method.Syntax: shutil.rmtree(path, ignore_errors=False, onerror=None)
Parameters:
ignore_errors
_are false or omitted, such errors are handled by calling a handler specified by onerror.
# Import os module
import shutil
# Directory that needs to be deleted. Removes all the files and folders inside the path
folderpath='/Projects/Tryouts/test/'
shutil.rmtree(folderpath)
If you are using the Python 3.4+ version, you could leverage the
pathlib
module, which comes as a built-in module. This module offers classes representing filesystem paths with semantics appropriate for different operating systems.There are 2 main functions over here –
pathlib
has a method called Path.unlink()
which removes a file or symoblic link.Syntax – Path.unlink(missing_ok=False)
# Import os module
import pathlib
# removes the current file path or symbolic link
file_to_remove= pathlib.Path('/Projects/Tryouts/test/python.txt')
file_to_remove.unlink()
pathlib
has a method called Path.rmdir()
which removes the specified directory. The directory must be empty else it will raise an OSError.# Import os module
import pathlib
# removes the current directory if its empty
folder_to_remove= pathlib.Path('/Projects/Tryouts/test/')
folder_to_remove.rmdir()
The post Python Delete File – Step-by-Step Guide appeared first on ItsMyCode.
37