Полное руководство: копирование каталогов в Python

Копирование каталогов в Python — распространенная задача при работе с файлами и папками. Если вы хотите создать резервные копии, дублировать структуру каталогов или переместить файлы в новое место, понимание различных методов копирования каталогов может оказаться невероятно полезным. В этой статье блога мы рассмотрим несколько методов с использованием разговорного языка и приведем примеры кода, которые помогут вам овладеть искусством копирования каталогов в Python.

Метод 1: использование модуля shutil
Модуль shutilв Python предоставляет высокоуровневый интерфейс для копирования файлов и каталогов. Чтобы скопировать каталог, вы можете использовать функцию copytree(). Вот пример:

import shutil
source = '/path/to/source_directory'
destination = '/path/to/destination_directory'
shutil.copytree(source, destination)

Метод 2: использование модуля distutils.dir_util
Модуль distutils.dir_utilPython предлагает другой способ копирования каталогов. Функцию copy_tree()можно использовать для копирования всей структуры каталогов из источника в место назначения. Вот пример:

from distutils.dir_util import copy_tree
source = '/path/to/source_directory'
destination = '/path/to/destination_directory'
copy_tree(source, destination)

Метод 3: использование модуля os
Встроенный модуль osPython обеспечивает низкоуровневые функции операционной системы, включая копирование каталогов. Функцию os.walk()можно использовать для перебора исходного каталога и копирования каждого файла и подкаталога в место назначения. Вот пример:

import os
import shutil
source = '/path/to/source_directory'
destination = '/path/to/destination_directory'
for root, dirs, files in os.walk(source):
    for file in files:
        source_path = os.path.join(root, file)
        destination_path = os.path.join(destination, os.path.relpath(source_path, source))
        os.makedirs(os.path.dirname(destination_path), exist_ok=True)
        shutil.copy2(source_path, destination_path)

Метод 4: использование модуля subprocessс командами оболочки
Если вы предпочитаете использовать команды оболочки, вы можете использовать модуль subprocessдля выполнения cpс помощью функции subprocess.run(). Вот пример:

import subprocess
source = '/path/to/source_directory'
destination = '/path/to/destination_directory'
subprocess.run(['cp', '-r', source, destination])

Копирование каталогов в Python можно выполнить различными методами. В этой статье мы рассмотрели четыре различных подхода, в том числе использование модуля shutil, модуля distutils.dir_util, модуля osи модуля . 20модуль. Каждый метод имеет свои преимущества и может подойти для разных сценариев. Поняв эти методы, вы сможете эффективно копировать каталоги в своих проектах Python.