RPA / Robocorp

Files and folders / Copy

Copy a single file

tasks.py
Copied!

from robocorp.tasks import task
import shutil

@task
def copy_file():
    source = "my-file.txt"
    destination = "my-folder/my-file.txt"
    shutil.copy(source, destination)

Copy multiple files

tasks.py
Copied!

from robocorp.tasks import task
import shutil
import os

@task
def copy_files():
    # List of source and destination file paths as tuples
    file_paths = [
        ("my_file1.txt", "my_folder1/my_file1.txt"),
        ("my_file2.txt", "my_folder2/my_file2.txt")
    ]

    for source, destination in file_paths:
        try:
            # Create destination folder if it doesn't exist
            destination_folder = os.path.dirname(destination)
            if not os.path.exists(destination_folder):
                os.makedirs(destination_folder)
                print(f"Destination folder '{destination_folder}' created successfully.")

            # Copy the file to the destination
            shutil.copy(source, destination)
            print(f"File '{source}' has been copied to '{destination}' successfully.")

        except Exception as e:
            print(f"An error occurred while copying '{source}' to '{destination}': {e}")

Copy a single folder

tasks.py
Copied!

from robocorp.tasks import task
import shutil

@task
def copy_folder():
    source = "my-folder1"
    destination = "my-folder2/subfolder"
    shutil.copytree(source, destination)

Copy multiple folders

tasks.py
Copied!

from robocorp.tasks import task
import shutil
import os

@task
def copy_folders():
    # List of source and destination folder paths as tuples
    folder_paths = [
        ("my-folder1", "backup-folder1/subfolder"),
        ("my-folder2", "backup-folder2/subfolder")
    ]

    for source, destination in folder_paths:
        try:
            # Check if the source folder exists
            if not os.path.exists(source):
                print(f"Source folder '{source}' does not exist. Skipping...")
                continue

            # If the destination already exists, delete it to allow overwriting
            if os.path.exists(destination):
                shutil.rmtree(destination)
                print(f"Destination folder '{destination}' already existed and was overwritten.")

            # Copy the source folder to the destination
            shutil.copytree(source, destination)
            print(f"Folder '{source}' has been copied to '{destination}' successfully.")

        except Exception as e:
            print(f"An error occurred while copying '{source}' to '{destination}': {e}")