Difference Between os.rename and shutil.move in Python
Last Updated :
25 Sep, 2023
When it comes to renaming or moving files and directories, two commonly used methods are os. rename and shutil. move. While both can serve the purpose of renaming and moving, they have distinct differences in terms of functionality and use cases. In this article, we will explore these differences and when to use each of them.
Difference Between os. rename and shutil. move in Python
Both os. rename and shutil. move are valuable tool in Python for renaming and moving files and directories. The choice between them depends on the complexity of your task and the specific requirements of your file manipulation operation.
When to Use os. rename and shutil.move:
Use of os.rename when:
- You need to perform a basic rename operation within the same directory.
- Atomicity is crucial for your operation.
Use of shutil.move when:
- You need to move files or directories across different filesystems or devices.
- You want to ensure destination directories are automatically created.
- You need to handle the overwriting of existing files.
- You want to preserve file metadata and attributes.
Examples for os.rename
Renaming a File
It will rename the file ‘old_file.txt’ to ‘new_file.txt’ and display a message indicating that the renaming process was successful.
Python3
import os
old_name = 'old_file.txt'
new_name = 'new_file.txt'
os.rename(old_name, new_name)
print (f "File '{old_name}' has been renamed to '{new_name}'." )
|
Output:
File is renamed as GFG
Rename a Directory
It will rename the directory ‘old_directory’ to ‘new_directory’ and display a message indicating that the renaming process was successful.
Python3
import os
old_dir = 'old_directory'
new_dir = 'new_directory'
os.rename(old_dir, new_dir)
print (f "Directory '{old_dir}' has been renamed to '{new_dir}'." )
|
Output:
Rename a Directory
Examples for shutil.move
Moving a File to a Different Directory
This code uses the shutil module to move a file from a source location to a destination directory. It first specifies the paths to the source file and the destination directory. Then, it calls shutil.move() with these paths to perform the move operation.
Python3
import shutil
source_file = 'source_directory/source_file.txt'
destination_directory = 'destination_directory/'
shutil.move(source_file, destination_directory)
print (f "File '{source_file}' has been moved to '{destination_directory}'." )
|
Output:
Moving a file to different directory
Handling Overwriting with shutil.move
This code uses the shutil library in Python to move a file from a source directory to a destination directory, potentially overwriting a file with the same name in the destination directory.
Python3
import shutil
source_file = 'source_directory/file.txt'
destination_directory = 'destination_directory/'
destination_file = 'destination_directory/file.txt'
shutil.move(source_file, destination_file)
print (f" File '{source_file}' has been moved to '{destination_file
}' (overwriting if necessary).")
|
Output:
Handling Overwriting with shutil.move
Share your thoughts in the comments
Please Login to comment...