Open In App

Python – os.replace() method

Last Updated : 21 Oct, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: OS module in Python.

os.replace() method in Python is used to rename the file or directory. If destination is a directory, OSError will be raised. If the destination exists and is a file, it will be replaced without error if the action performing user has permission. This method may fail if the source and destination are on different filesystems.

Syntax: os.replace(source, destination, *, src_dir_fd=None, dst_dir_fd=None2)

Parameter:

  • source: Name of file or directory which we want to rename.
  • destination: Name which we want to give in destination.
  • src_dir_id : This parameter stores the source directory’s or file, 
               file descriptor referring to a directory.
  • dst_dir_fd: It is a file descriptor referring to a directory, 
                and the path to operate. It should be relative, 
                path will then be relative to that directory. If 
                the path is absolute, dir_fd is ignored.

Return Type: This method does not return any value.

Code #1: Use of os.replace() method to rename a file.

Python3




# Python program to explain os.replace() method
 
# importing os module
import os
 
# file name
file = "f.txt"
 
# File location which to rename
location = "d.txt"
 
# Path
path = os.replace(file, location)
 
# renamed the file f.txt to d.txt
print("File %s is renamed successfully" % file)


Output:

File f.txt is renamed successfully

Code #2: Handling possible errors. (If necessary permissions are given then output will be as shown in below) 

Python




# Python program to explain os.replace() method
 
# importing os module
import os
 
# Source file path
source = './file.txt'
 
# destination file path
dest = './da'
 
 
# try renaming the source path
# to destination path
# using os.rename() method
 
try:
    os.replace(source, dest)
    print("Source path renamed to destination path successfully.")
 
# If Source is a file
# but destination is a directory
except IsADirectoryError:
    print("Source is a file but destination is a directory.")
 
# If source is a directory
# but destination is a file
except NotADirectoryError:
    print("Source is a directory but destination is a file.")
 
# For permission related errors
except PermissionError:
    print("Operation not permitted.")
 
# For other errors
except OSError as error:


Output:

Source is a file but destination is a directory.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads