Open In App

shutil.copytree() method – Python

Last Updated : 08 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

shutil.copytree() method in Python is used to recursively copy an entire directory tree from a source to a destination. It copies all the contents, including files and subdirectories, preserving the directory structure.

Syntax

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False)

Parameters:

  • src: The path to the source directory to be copied.
  • dst: The path to the destination directory where the contents will be copied.
  • symlinks (optional): If True, it copies symbolic links as symbolic links. Default is False.
  • ignore (optional): A callable function that can be used to ignore certain files. It should take two arguments: the directory path and the list of file names in the directory.
  • copy_function (optional): A function to use for copying files. The default is shutil.copy2(), which preserves file metadata.
  • ignore_dangling_symlinks (optional): If True, it prevents errors when copying broken symlinks. Default is False.

Return Value: This method returns a string which represents the path of newly created directory.

Examples of shutil.copytree() method

Example 1: Using shutil.copytree() method to copy file from source to destination

This code demonstrates how to copy an entire directory, including its contents, from the source path to the destination path using the shutil.copytree() method.

Python
import os
import shutil

# path
path = r'C:\Users\GFG0589\Desktop\vs'

print("Before copying file:")
print(os.listdir(path))

# Source path
src = r'C:\Users\GFG0589\Desktop\vs\source'

# Destination pat
dest = r'C:\Users\GFG0589\Desktop\vs\destination'

# Copy the content of source to destination
destination = shutil.copytree(src, dest)

print("After copying file:")
print(os.listdir(path))

# Print path of newly created file
print("Destination path:", destination)

Output

Before copying file:
['copy_tree_example.py', 'source']
After copying file:
['copy_tree_example.py', 'destination', 'source']
Destination path: C:\Users\GFG0589\Desktop\vs\destination

Explanation: The shutil.copytree() method is used to copy the entire content of the source directory (src) to the destination directory (dest). Theos.listdir() function is called before and after to show the directory contents. The final output prints the path of the newly created directory.

Example 2: Using shutil.copytree() method to copy file by using shutil.copy() method

This example shows how to copy the contents of a directory from the source to the destination using shutil.copytree() with a custom copy function, specifically shutil.copy().

Python
import os 
import shutil 
	
# path 
path = 'C:\Users\GFG0589\Desktop\vs'
	
print("Before copying file:") 
print(os.listdir(path)) 
	
# Source path 
src = 'C:\Users\GFG0589\Desktop\vs\source'
	
# Destination path 
dest = 'C:\Users\GFG0589\Desktop\vs\destination'
	
# Copy the content of source to destination using shutil.copy() as parameter 
destination = shutil.copytree(src, dest, copy_function = shutil.copy) 
	
print("After copying file:") 
print(os.listdir(path)) 
print("Destination path:", destination) 

Output

Before copying file:
['source']
After copying file:
['destination', 'source']
Destination path: C:\Users\GFG0589\Desktop\vs\destination

Explanation: Here, shutil.copytree() is used to copy the content from the source directory to the destination directory. Instead of the default copy2(), shutil.copy() is passed as the copy_function argument to handle the file copying. This method copies the content with basic metadata. The os.listdir() function is used before and after the copy to display changes in the directory, and the destination path is printed at the end.



Next Article
Article Tags :
Practice Tags :

Similar Reads