import shutil python что это

Модуль shutil и его 10 главных методов

В этой статье вы узнаете 10 основных функций, которые позволят вам работать с файловыми операциями высокого уровня с помощью встроенной библиотеки shutil в Python.

Введение

Во-первых, модуль shutil в Python предоставляет множество функций для выполнения высокоуровневых операций с файлами и коллекциями файлов.

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

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

Основная документации по этому модулю находится на оффициальном сайте Python.

Основной синтаксис для использования модуля shutil выглядит следующим образом:

Метод shutil.copy

shutil.copy это функция используется для копирования содержимого или текста исходного файла в конечный файл или каталоги. Она также сохраняет режим разрешений файла, но другой тип метаданных файла, такой как создание файла и его модификация, не сохраняется.

Пример написания кода:

Объяснение: В этом коде, во-первых, я проверяю файлы, присутствующие в каталоге. Во-вторых, я печатаю права доступа к файлу и даю исходный путь к файлу. В-третьих, я даю путь назначения копии содержимого там в новом файле. Наконец, я снова распечатываю все файлы в каталоге и проверяю, была ли создана копия этого файла или нет.

Метод shutil.copy2

Если что, эта функция точно такая же, как функция copy(), за исключением того, что она поддерживает метаданные исходного файла.

Объяснение: В этом коде я написал функцию copy2 — это то же самое, что и copy, просто она выполняет одну дополнительную операцию, которая поддерживает метаданные.

Метод shutil.copyfile

В этом файле функции копируются имена, что означает, что исходный файл копируется по указанному имени в том же каталоге. Файл сообщает, что дубликат файла присутствует в том же каталоге.

Объяснение: В этом коде я написал функцию copyfile, то же имя файла копируется для нового файла, просто копия добавляется в новое имя файла. Смотрите в выходных данных.

Метод shutil.copytree

Эта функция копирует файл и подкаталоги из одного каталога в другой. Это означает, что файл присутствует как в источнике, так и в месте назначения. Имена обоих параметров должны быть в строке.

Объяснение: В этом коде я написал функцию copytree, чтобы получить дубликат этого файла.

Метод shutil.rmtree

Эта функция используется для удаления конкретного файла и подкаталога из указанного каталога, что означает, что каталог удаляется из системы.

Объяснение: В этом коде я написал функцию rmtree, которая используется для удаления файла или каталога. Во-первых, я перечислил все файлы и применил функцию удаления, а затем снова перечислил файл, чтобы увидеть, удален он или нет.

Метод shutil.which

Функция which — это отличный инструмент, который используется для поиска пути к файлу в вашем компьютере, чтобы легко добраться до конкретного места назначения, зная название файла.

Объяснение: В этом коде я написал функцию which, чтобы при необходимости найти любой из файлов.

Метод shutil.disk_usage

Эта функция используется для того, чтобы понять, сколько информации присутствует в нашей файловой системе, просто вызвав функцию disk_usage.

Объяснение: В этом коде я написал функцию disk_usage, чтобы узнать об общем, используемом и свободном дисковом пространстве.

Метод shutil.move

Эта функция используется для перемещения файла и каталога из одного каталога в другой и удаления его из предыдущего каталога. Её также можно назвать переименованием файла или каталога.

Объяснение: В этом коде я написал функцию move для перемещения файла или каталога из одного места в другое.

Метод shutil.make_archive

Эта функция используется для создания архива (zip или tar) файлов в корневом каталоге.

Объяснение: В этом коде я написал функцию make_archive с сообщением им имени исходного каталога для создания архива файлов в исходном каталоге.

Метод shutil.get_archive_formats

Эта функция дает нам все поддерживаемые форматы архивов в файле или каталоге.

Объяснение: В этом коде я написал функцию get_archive_formats, чтобы получить вспомогательные форматы архивов в файле или каталоге.

Преимущества модуля

Вот 2 существенных плюса:

Заключение

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

Источник

Модуль shutil в Python

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

Он позволяет нам легко работать с файловыми объектами, не углубляясь в файловые объекты. Он заботится о низкоуровневой семантике, такой как создание файловых объектов, закрытие файлов после их копирования и позволяет нам сосредоточиться на бизнес-логике нашей программы. Давайте посмотрим, как работает модуль shutil.

Читайте также:  Что значит точка в геометрии

Давайте рассмотрим различные примеры, чтобы понять модуль.

Как копировать файл?

Используя функцию shutil copyfile(), легко скопировать файл в новый файл только в текущем каталоге.

Вот пример программы, показывающей, как мы можем создать новый клон существующего файла в нашем текущем каталоге:

Посмотрим на результат этой программы:

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

Копирование файлов в другой каталог

Используя функцию shutil copy(), легко скопировать файл в другой каталог.

Давайте посмотрим на фрагмент кода, как это можно сделать:

Посмотрим на результат этой программы:

Эта функция отличается от функции copyfile(), поскольку последняя принимает имя файла в качестве параметра, тогда как функция copy() принимает имя каталога в качестве входных данных.

Наконец, разрешения файла также клонируются при копировании файла с обеими функциями, но метаданные не копируются, что означает, что новый созданный файл будет иметь время только что созданного вместо времени исходного файла.

Копирование файла с метаданными

Если вам нужно сделать точный клон файла вместе с разрешениями и метаданными файла, мы можем использовать функцию copy2(). Обратите внимание, что это может не работать полностью в системе на основе POSIX.

Вот пример программы того, как мы используем эту функцию:

Мы запускаем эту функцию в системе POSIX, поэтому сохраняются только режим файла и дата изменения:

В других системах даже время создания и доступа точно совпало бы.

Репликация всего каталога

С помощью функции copytree() можно полностью рекурсивно реплицировать дерево каталогов. Это означает, что если в каталоге есть больше каталогов, этот каталог также будет клонирован.

Давайте посмотрим на фрагмент кода, показывающий, как мы можем клонировать полный каталог:

Посмотрим на результат этой программы:

Обратите внимание, что мы не печатаем содержимое каталога journaldev раньше, поскольку функция copytree() имени каталога принимает в качестве входных данных, которые не должны существовать до запуска этой команды.

Удаление каталога

Еще один простейший пример с shutil – удаление всего каталога. Нет необходимости рекурсивно удалять файлы или закрывать соединения для обработки файлов.

Вот пример программы, показывающей, насколько просто использовать функцию rmtree():

Здесь мы печатаем содержимое текущего каталога. Перед запуском сценария в текущей папке существует каталог journaldev. После запуска скрипта он удаляется вместе с содержимым. Посмотрим на результат этой программы:

Поиск файлов

Функция which() представляет собой отличный инструмент для поиска файла на вашем компьютере, который присутствует в PATH.

Вот пример программы с примером файла:

Посмотрим на результат этой программы:

Мониторинг пространства файловой системы

Мы даже можем получить информацию о том, сколько данных присутствует в нашей файловой системе, с помощью простого вызова с помощью функции disk_usage().

Источник

Модуль Python Shutil: 10 Методов, Которые Вы Должны знать

“Python shutil module” выполняет высокоуровневые операции с файлами и каталогами, которые помогают нам копировать и удалять файлы и каталоги.

Модуль Python Shutil: 10 Методов, Которые Вы Должны знать

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

Как работает модуль python shutil?

Основной синтаксис использования модуля shutil выглядит следующим образом:

Операции с файлами и каталогами

1. Python shutil.copy()

shutil.copy(): Эта функция используется для копирования содержимого или текста исходного файла в целевой файл или каталоги. Он также сохраняет режим разрешений файла, но другой тип метаданных файла, такой как создание файла и его модификация, не сохраняется.

Объяснение:

В этом коде, во-первых, мы проверяем файлы, присутствующие в каталоге. Во-вторых, тогда мы напечатаем права доступа к файлу и дадим исходный путь к файлу. В-третьих, мы дадим путь назначения копии содержимого там в новом файле. Наконец, мы снова распечатаем все файлы в каталоге и проверим, была ли создана копия этого файла или нет.

2. Python shutil.copy2()

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

Объяснение:

В этом коде мы написали функцию copy2 () – это то же самое, что и копия, просто она выполняет одну дополнительную операцию, которая поддерживает метаданные.

Читайте также:  какой зоомагазин дешевле в москве

3. Python shutil.copyfile()

В этом файле функции копируются имена, что означает, что исходный файл копируется по указанному имени в том же каталоге. Он говорит, что дубликат файла присутствует в том же каталоге.

Объяснение:

В этом коде мы написали функцию copy file() то же имя файла копируется для нового файла, просто копия добавляется в новое имя файла. смотрите в выходных данных.

4. Python shutil.copytree()

Эта функция копирует файл и подкаталоги из одного каталога в другой. Это означает, что файл присутствует как в источнике, так и в месте назначения. Имена обоих параметров должны быть в строке.

Объяснение:

В этом коде мы написали функцию copytree (), чтобы получить дубликат этого файла.

5. Python shutil.rmtree()

Эта функция используется для удаления конкретного файла и подкаталога из указанного каталога, что означает, что каталог удаляется из системы.

Объяснение:

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

6. шутил.который()

Функция which() a-это отличный инструмент, который используется для поиска пути к файлу в вашей машине, чтобы легко добраться до конкретного места назначения, зная путь к файлу.

Объяснение:

В этом коде мы написали функцию that (), чтобы при необходимости найти любой из файлов.

7. Python shutil.disk_usage()

Эта функция используется для того, чтобы понять, сколько информации присутствует в нашей файловой системе, просто вызвав функцию disk_usage ().

Объяснение:

В этом коде мы написали функцию disk_usage (), чтобы узнать об общем, используемом и свободном дисковом пространстве.

8. Python shutil.move()

Эта функция используется для перемещения файла и каталога из одного каталога в другой и удаления его из предыдущего каталога. Это также можно назвать переименованием файла или каталога.

Объяснение:

В этом коде мы написали функцию move() для перемещения файла или каталога из одного места в другое.

9. Python shutil.make_archive()

Эта функция используется для создания архива (zip или tar) файлов в корневом каталоге.

Объяснение:

В этом коде мы написали функцию make_archive() с сообщением им имени корневого каталога для создания архива файлов в корневом каталоге.

10. Python shutil.get_archive_formats()

Эта функция дает нам все поддерживаемые форматы архивов в файле или каталоге.

Объяснение:

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

Преимущества

Надо Читать

Вывод

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

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Источник

Модуль Shutil в Python – основы работы

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

Что такое модуль Shutil в Python?

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

Модуль Python shutil имеет множество встроенных методов. Мы рассмотрим несколько самых важных из них. Чтобы начать работу с этим модулем, сначала нам нужно импортировать его в наш текущий файл Python.

Копирование файлов

Модуль shutil предоставляет функцию copy(), которая используется для копирования данных из одного файла в другой. Файлы должны находиться в одном каталоге, а целевой файл должен быть доступен для записи. Давайте разберемся в следующем синтаксисе.

В приведенном выше синтаксисе:

Давайте разберемся в следующем примере.

Функция copy() принимает в качестве аргумента имя каталога. Здесь метаданные не копируются, скопированный файл будет считаться только что созданным файлом. Этот метод также клонировал все разрешения файла. Следует отметить, что если целевой файл уже существует, он будет заменен исходным файлом.

Посмотрим на другой пример.

Пример 2: если местом назначения является каталог

Как мы уже упоминали, функция copy() не копирует метаданные. Но мы будем использовать функцию copy2(), которая позволяет нам копировать файл, включая его метаданные.

Читайте также:  какой мировой рекорд по прыжкам на скакалке

Пример 3: Обработка ошибок при использовании метода копирования

Функция copy2()

Эта функция аналогична функции copy(). Она также может копировать содержимое одного файла в другой, но с той лишь разницей, что она может сохранять метаданные файла. Давайте разберемся в ее синтаксисе.

В приведенном выше синтаксисе:

Давайте разберемся в следующем примере.

Метод shutil.copyfile()

Этот метод используется для копирования содержимого исходного файла в целевой файл, за исключением метаданных. Источник и место назначения должны иметь файл, а файл назначения должен предоставлять разрешение на запись. Если файл назначения уже существует, он будет заменен новым файлом, в противном случае создается новый файл.

Посмотрим на следующий синтаксис:

В приведенном выше синтаксисе:

Давайте разберемся в следующем примере.

Функция shutil.copytree()

Этот метод используется для репликации всего каталога. Он копирует все дерево каталогов с корнем в исходный каталог. Целевой каталог еще не должен присутствовать.

В приведенном выше синтаксисе:

Shutil.rmtree()

Этот метод используется для удаления всего дерева каталогов.

В приведенном выше синтаксисе:

Давайте разберемся в следующем примере:

Приведенный выше код удалит данный каталог.

Функция shutil.which()

Функция shutil.which() используется для получения пути к исполняемому приложению, которое будет запущено при вызове данного cmd. Он находит файл по заданному пути.

В приведенном выше синтаксисе:

Давайте разберемся в следующем примере.

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

Источник

Модуль shutil

Модуль shutil содержит набор функций высокого уровня для обработки файлов, групп файлов, и папок. В частности, доступные здесь функции позволяют копировать, перемещать и удалять файлы и папки. Часто используется вместе с модулем os.

Операции над файлами и директориями

При этом, если позиция указателя в fsrc не 0 (т.е. до этого было сделано что-то наподобие fsrc.read(47)), то будет копироваться содержимое начиная с текущей позиции, а не с начала файла.

Если src и dst представляют собой один и тот же файл, исключение shutil.SameFileError.

Если dst существует, то он будет перезаписан.

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

Если follow_symlinks=False, и src это ссылка, dst будет ссылкой.

Если follow_symlinks=True, и src это ссылка, dst будет копией файла, на который ссылается src

copy() копирует содержимое файла, и права доступа.

Директория dst не должна существовать. Она будет создана, вместе с пропущенными родительскими директориями.

Права и времена у директорий копируются copystat(), файлы копируются с помощью функции copy_function (по умолчанию shutil.copy2()).

Если symlinks=True, ссылки в дереве src будут ссылками в dst, и метаданные будут скопированы настолько, насколько это возможно.

Если False (по умолчанию), будут скопированы содержимое и метаданные файлов, на которые указывали ссылки.

Если symlinks=False, если файл, на который указывает ссылка, не существует, будет добавлено исключение в список ошибок, в исключении shutil.Error в конце копирования.

Можно установить флаг ignore_dangling_symlinks=True, чтобы скрыть данную ошибку.

Если ignore не None, то это должна быть функция, принимающая в качестве аргументов имя директории, в которой сейчас copytree(), и список содержимого, возвращаемый os.listdir(). Т.к. copytree() вызывается рекурсивно, ignore вызывается 1 раз для каждой поддиректории. Она должна возвращать список объектов относительно текущего имени директории (т.е. подмножество элементов во втором аргументе). Эти объекты не будут скопированы.

Если ignore_errors=True, то ошибки, возникающие в результате неудавшегося удаления, будут проигнорированы. Если False (по умолчанию), эти ошибки будут передаваться обработчику onerror, или, если его нет, то исключение.

На ОС, которые поддерживают функции на основе файловых дескрипторов, по умолчанию используется версия rmtree(), не уязвимая к атакам на символические ссылки.

На других платформах это не так: при подобранном времени и обстоятельствах «хакер» может, манипулируя ссылками, удалить файлы, которые недоступны ему в других обстоятельствах.

Чтобы проверить, уязвима ли система к подобным атакам, можно использовать атрибут rmtree.avoids_symlink_attacks.

Если задан onerror, это должна быть функция с 3 параметрами: function, path, excinfo.

Архивация

Высокоуровневые функции для созданиия и чтения архивированных и сжатых файлов. Основаны на функциях из модулей zipfile и tarfile.

base_name это имя файла для создания, включая путь, но не включая расширения (не нужно писать «.zip» и т.д.).

Если dry_run=True, архив не будет создан, но операции, которые должны были быть выполнены, запишутся в logger.

owner и group используются при создании tar-архива.

Запрос размера терминала вывода

fallback вернётся, если не удалось узнать размер терминала (терминал не поддерживает такие запросы, или программа работает без терминала). По умолчанию (80, 24).

Источник

Сказочный портал