Копирование файла с сохранением режим доступа к нему.
Синтаксис:
import shutil shutil.copy(src, dst, *, follow_symlinks=True)
Параметры:
- src — str , исходное место/путь копируемого файла ,
- dst — str , место/путь назначения нового файла,
- follow_symlinks=True — что делать с символическими ссылками.
Возвращаемое значение:
- str имя скопированного dst .
Описание:
Функция copy() модуля shutil копирует файл src в файл или каталог dst . Аргументы src и dst должны быть строками. Возвращает путь к вновь созданному файлу.
- Если dst указывает на каталог, то файл будет скопирован в dst с использованием базового имени файла из src .
- Если follow_symlinks имеет значение false , а src является символической ссылкой, то dst будет создан как символическая ссылка.
- Если follow_symlinks имеет значение true и src является символической ссылкой, то dst будет копией файла, на который ссылается src .
Функция shutil.copy() копирует данные файла и режим доступа к файлу. Другие метаданные, такие как время создания и время изменения файла не сохраняются. Чтобы сохранить все метаданные файла из оригинала, используйте функцию shutil.copy2() .
Как скачивать файлы с помощью Python
Примеры использования:
>>> import shutil, os >>> from glob import glob # создадим тестовый файл >>> open(‘shutil_copy.txt’, ‘w’).close() # создадим временную директорию >>> os.mkdir(‘example’) >>> glob(‘example/*’) # [] # Копирование, обратите внимание, что ‘dst’ # задан как каталог! >>> shutil.copy(‘shutil_copy.txt’, ‘example’) # ‘example/shutil_copy.txt’ # смотрим результат >>> glob(‘example/*’) # [‘example/shutil_copy.txt’] # удаляем >>> shutil.rmtree(‘example’)
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Примеры использования модуля shutil.
- Функция copyfile() модуля shutil.
- Функция copy() модуля shutil.
- Функция copy2() модуля shutil.
- Функция copytree() модуля shutil.
- Функция move() модуля shutil.
- Функция rmtree() модуля shutil.
- Функция ignore_patterns() модуля shutil.
- Функция copymode() модуля shutil.
- Функция copystat() модуля shutil.
- Функция disk_usage() модуля shutil.
- Функция chown() модуля shutil.
- Функция which() модуля shutil.
- Функция make_archive() модуля shutil.
- Функция get_archive_formats() модуля shutil.
- Функция register_archive_format() модуля shutil.
- Функция register_unpack_format() модуля shutil.
- Функция copyfileobj() модуля shutil.
ХОЧУ ПОМОЧЬ
ПРОЕКТУ
Источник: docs-python.ru
Копирование файла в Python
SQLITE 3 Python [ 1 ] | Создание таблицы, добавление данных, проверка и вывод.
В наших предыдущих руководствах мы изучили некоторые операции с файлами Python, такие как чтение, запись и удаление.
Основные принципы работы метода copy() в Python
Метод copy() в Python используется для создания копии объекта.
В этой статье мы подробно рассмотрим, как работает этот метод и в каких ситуациях его следует использовать.
Использование copy()
Метод copy() в Python может быть вызван у различных типов объектов, включая списки, словари, множества и другие. Рассмотрим пример его использования на списке:
original = [1, 2, 3, 4, 5] copy = original.copy() print(copy) #[1, 2, 3, 4, 5]
В этом примере метод copy() вызывается у списка original , и результат присваивается новой переменной copy . Теперь copy и original — это два разных списка с одинаковым содержимым.
Поверхностное копирование vs глубокое копирование
Важно понимать, что метод copy() выполняет поверхностное копирование объекта. Это означает, что если объект содержит другие объекты (например, список списков), то в копии будут содержаться ссылки на те же вложенные объекты. Рассмотрим пример:
original = [[1, 2, 3], [4, 5, 6]] copy = original.copy() copy[0][0] = 9 print(original) #[[9, 2, 3], [4, 5, 6]]
В этом примере изменение элемента вложенного списка в copy приводит к изменению в original , потому что copy содержит ссылки на те же вложенные списки.
Если вам нужно создать полностью независимую копию объекта, включая все вложенные объекты, то нужно использовать глубокое копирование. В Python для этого есть функция deepcopy() из модуля copy .
import copy original = [[1, 2, 3], [4, 5, 6]] deep_copy = copy.deepcopy(original) deep_copy[0][0] = 9 print(original) #[[1, 2, 3], [4, 5, 6]]
Использование copy() с различными типами данных
Метод copy() можно использовать с различными типами данных, включая списки, словари и множества.
# List original_list = [1, 2, 3, 4, 5] copy_list = original_list.copy() print(copy_list) # Outputs: [1, 2, 3, 4, 5] # Dictionary original_dict = copy_dict = original_dict.copy() print(copy_dict) # Outputs: # Set original_set = copy_set = original_set.copy() print(copy_set) # Outputs:
Замена copy() на срезы и конструкторы типов
Для списков и некоторых других типов данных, вместо copy() можно использовать срезы или конструкторы типов для создания копий.
# List original_list = [1, 2, 3, 4, 5] copy_list = original_list[:] # or copy_list = list(original_list) # Dictionary original_dict = copy_dict = dict(original_dict) # Set original_set = copy_set = set(original_set)
Эти способы также создают поверхностные копии, как и метод copy() .
Подводные камни использования copy()
Помимо различия между поверхностным и глубоким копированием, важно помнить, что не все типы данных в Python поддерживают метод copy() . Например, числа, строки и кортежи являются неизменяемыми (immutable), и у них нет метода copy() . Попытка вызвать copy() у такого объекта приведет к ошибке:
number = 42 copy = number.copy() # AttributeError: ‘int’ object has no attribute ‘copy’
Заключение
Метод copy() в Python — это удобный инструмент для создания копий объектов. Он работает с различными типами данных, включая списки, словари и множества, и делает поверхностное копирование объектов. При работе с вложенными структурами данных важно помнить о разнице между поверхностным и глубоким копированием и использовать функцию deepcopy() , если необходима полная независимость копии от оригинала.
Работа с первым элементом списка в Python
Изучаем метод replace() в Python: простой способ замены подстрок
Объединение последовательностей с помощью метода join(): синтаксис и примеры
Синтаксис и примеры использования метода isdigit() для обработки строк в Python
Метод insert() для вставки элементов в список: синтаксис и примеры
Как изменить ключ в словаре в Python
Источник: fullstacker.ru