Для перемещения файлов между директориями в Python используется функция shutil.move() из модуля shutil.  Она позволяет перенести файл или директорию из одного места в другое в файловой системе.
Синтаксис:
shutil.move(source, destination, copy_function=copy2)Параметры:
source: Путь к файлу или директории, которую нужно переместить.  Может быть относительным или абсолютным.destination: Путь к целевой директории или новому файлу.  Может быть относительным или абсолютным.
        destination указывает на существующую директорию, то файл или директория source перемещается внутрь этой директории, сохраняя своё имя.destination указывает на несуществующую директорию, будет предпринята попытка переименовать source в destination.  Это может привести к ошибке, если не хватает прав доступа.destination указывает на несуществующий файл (с тем же именем, которое мы хотим дать), то source будет переименован и перемещен.copy_function (необязательный): Функция, используемая для копирования файла, если перемещение невозможно (например, если source и destination находятся на разных файловых системах). По умолчанию используется shutil.copy2, которая пытается сохранить метаданные файла.  Другие варианты: shutil.copy (копирует только содержимое) или можно передать свою функцию копирования.Примеры:
1. Перемещение файла в другую директорию:
import shutil
import os
# Создадим тестовый файл
if not os.path.exists("source_directory"):
    os.makedirs("source_directory")
with open("source_directory/my_file.txt", "w") as f:
    f.write("Hello, world!")
# Создадим целевую директорию
if not os.path.exists("destination_directory"):
    os.makedirs("destination_directory")
source = "source_directory/my_file.txt"
destination = "destination_directory"
shutil.move(source, destination)
print(f"Файл перемещен из {source} в {destination}")
  2. Перемещение файла и переименование его:
import shutil
import os
# Создадим тестовый файл
if not os.path.exists("source_directory"):
    os.makedirs("source_directory")
with open("source_directory/old_name.txt", "w") as f:
    f.write("Hello, world!")
source = "source_directory/old_name.txt"
destination = "source_directory/new_name.txt" #Переименуем и переместим в ту же директорию
shutil.move(source, destination)
print(f"Файл перемещен и переименован из {source} в {destination}")
  3. Перемещение директории:
import shutil
import os
# Создадим тестовую директорию со всем содержимым.
if not os.path.exists("source_directory"):
    os.makedirs("source_directory")
    with open("source_directory/file1.txt", "w") as f:
        f.write("Content of file1")
    os.makedirs("source_directory/nested_directory")
    with open("source_directory/nested_directory/file2.txt", "w") as f:
        f.write("Content of file2")
# Создадим целевую директорию
if not os.path.exists("destination_directory"):
    os.makedirs("destination_directory")
source = "source_directory"
destination = "destination_directory"
shutil.move(source, destination)
print(f"Директория перемещена из {source} в {destination}")
  Обратите внимание:
shutil.move() удаляет source после успешного перемещения.shutil.Error или его подкласс (например, OSError).  Рекомендуется обрабатывать исключения, чтобы обеспечить надежную работу программы.source и destination находятся на разных файловых системах, shutil.move() сначала скопирует файл, а затем удалит оригинал. Можно указать функцию копирования через аргумент copy_function.