Функция shutil.copyfile() в Python: как скопировать файл

Python shutil.copyfile() — это встроенный метод, который используется для копирования содержимого исходного файла в целевой файл. Модуль shutil Python предоставляет множество функций высокоуровневых операций над файлами и коллекциями файлов. Он входит в стандартные служебные модули Python и помогает автоматизировать процесс копирования и удаления файлов и каталогов.

Что такое функция copyfile() в Python?

Функция Python shutil.copyfile() копирует содержимое (без метаданных) файла с именем src в файл с именем dst наиболее эффективным способом.

src и dst — это path-like объекты или имена пути, заданные в виде строк. Файл dst должен быть полным именем целевого файла; посмотрите на copy() для копии, которая принимает путь к целевому каталогу. Если src и dst указывают один и тот же файл, возникает ошибка SameFileError. Пункт назначения должен быть доступен для записи; в противном случае будет возбуждено исключение OSError. Если файл dst уже существует в этом месте, он будет заменен.

Отдельные файлы, такие как символьные или блочные устройства и конвейеры, не могут быть скопированы с помощью функции copyfile().

Если для параметра follow_symlinks установлено значение false, а src является символической ссылкой, вместо копирования файла, на который указывает src, будет создана новая символическая ссылка.

Синтаксис

Параметры

  • Параметр src — это путь к исходному файлу, который необходимо скопировать.
  • Параметр dst — это путь к файлу назначения, куда файл копируется и помещается в нужное место.

Пошаговое копирование файла в Python

Теперь мы выполним несколько простых шагов, чтобы скопировать файл в Python 3.

Шаг 1: Перейдите в папку, где находится ваш файл src

Перейдите к файлу src, откройте терминал и введите следующую команду, чтобы получить полный путь.

Выход:

Итак, я в папке файла src. Теперь давайте узнаем содержимое текущей папки с помощью следующей команды.

Команда выведет список файлов и каталогов внутри текущей папки.

Выход:

Итак, у нас есть три файла и одна папка. Мы должны скопировать файл app.py и поместить его в папку платформы.

Это означает, что наш путь к файлу src следующий.

Шаг 2: Получите путь dst (назначение)

Наш путь к файлу назначения или путь dst находится внутри папки платформы. Итак, давайте зайдем в папку платформы.

Теперь получите полный путь к папке платформы, используя следующую команду.

Выход:

Наша папка dst — это platform. Но наш dst-файл будет другим. Это новая копия файла app.py.

Теперь давайте установим имя скопированного файла cp.py.

Итак, наш путь к файлу dst следующий.

Теперь у нас есть два полных пути.

  1. src
  2. dst

Это все, что нам нужно, чтобы скопировать файл в Python.

Шаг 3: Просмотр содержимого пути dst

Итак, давайте посмотрим на файлы внутри папки платформы.

Это означает, что у нас есть только один файл в папке платформы с именем 1.py. После копирования файла у нас в папке будет два файла: 1.py и другой скопированный файл.

Шаг 4: Напишите код для копирования файла на Python

Теперь, когда у нас есть пути src и dst, мы можем написать код для копирования файла.

Напишите следующий код в файле index.py.

Выход:

Теперь зайдите в папку платформы.

Перечислите имена файлов, используя следующую команду.

Итак, наш файл скопирован, и теперь этот файл называется cp.py. Если вы не хотите заходить в папку платформы вручную, то мы можем использовать функцию os.listdir().

Функция Python os.listdir() указывает путь к папке назначения и отображает ее содержимое.

См. следующий код.

Выход:

Возможные ошибки при копировании файла

Если источник и место назначения представлены, будет возбуждено исключение «SameFileError» для одного и того же файла.

SameFileError

Выход:

Если пунктом назначения является каталог, будет вызвано исключение «IsADirectoryError».

IsADirectoryError

Выход:

Если место назначения недоступно для записи, будет применено исключение «PermissionError».

Обработка ошибок при использовании метода shutil.copyfile()

Обработка исключений — это мощный механизм обработки ошибок, не нарушающий работу программы.

Давайте воспользуемся механизмом try-except Python для обработки исключений.

Выход:

Заключение

Как скопировать файл в Python 3

В этом руководстве мы увидели, как выбрать исходный и целевой пути и использовать функцию Shutil.copyfile() для копирования файла в Python. Мы увидели, какие возможные исключения могут возникнуть во время работы программы и как обрабатывать эти исключения и поддерживать работу программы.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python