Найти в Дзене
Old Programmer

Программирование на языке Python. Модуль shutil

Все ссылки на статьи и ролики моего канала Old Programmer:
Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А здесь все мои материалы о языке программирования Python. Все о библиотеках Python - тут. Мой новый канал о Python О модуле shutil Модуль shutil входит в перечень стандартных библиотек python. Для подключения его используется обычное import shutil Как правило этот модуль используют вместе с библиотекой os, он как бы дополняет ее. Пример использования модуля shutil Модуль прост в использовании, поэтому я только приведу несколько примеров его использования, без написания отдельных программ. В нем довольно много методов, мы остановимся на самых используемых. Копирование Копирование файла shutil.copy(src, dst, follow_symlinks=True) Пример копирования
shutil.copy('../im.txt', './im1.txt', follow_symlinks=False) Копирование дерева каталогов shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False) Копир
Оглавление

Все ссылки на статьи и ролики моего канала Old Programmer:
Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А здесь все мои материалы о языке программирования Python. Все о библиотеках Python - тут.

  • Список разделов канала Old Programmer, канала о программировании и программистах

Мой новый канал о Python

programmer's notes

О модуле shutil

Модуль shutil входит в перечень стандартных библиотек python. Для подключения его используется обычное

import shutil

Как правило этот модуль используют вместе с библиотекой os, он как бы дополняет ее.

Пример использования модуля shutil

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

Копирование

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

shutil.copy(src, dst, follow_symlinks=True)

  • src - файл источник;
  • dst - имя скопированного файла, если это имя каталога, то файл копируется с именем исходного файла;
  • третий не обязательный параметр показывает как копировать в случае ссылки. False - ссылка скопируется как ссылка, True - будет скопирован, на который указывает ссылка.

Пример копирования
shutil.copy('../im.txt', './im1.txt', follow_symlinks=False)

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

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False)

Копирует дерево каталогов. Функция имеет два первых обязательных параметра.

  • src - имя копируемого каталога;
  • dst - куда копировать, каталог не должен существовать;
  • symlinks=True - ссылки на файлы будут копироваться как ссылки, symlinks=False - вместо ссылок будут копировать файлы, на которые ссылки указывают;
  • Если symlinks=False и файл на который указывает ссылка отсутствует, то будет генерироваться ошибка. Если добавить ignore_dangling_symlinks=True, то ошибка будет игнорирована;
  • Если ignore не равен None, то это должно быть имя функции, принимающая два параметра: имя проходимого каталога и список файлов в нем.

Пример копирования
shutil.copytree('/home/vladislav/Yandex.Disk/temp', './tmp')

  • Программирование на языке Python. Библиотека os
  • Программирование на языке Python. Библиотека os и дерево каталогов
  • Программирование на языке Python. Модуль os и рекурсия по файловой системе

Удаление и перемещение

Удаление

shutil.rmtree(path, ignore_errors=False, onerror=None)

Удаляет дерево каталогов с подкаталогами.

  • path - удаляемый каталог;
  • ignore_errors=True - возникающие ошибки будут проигнорированы. ignore_errors=False - исключения будут передаваться обработчику oneerror, или давать исключения, если обработчик не задан;
  • oneerror - None или обработчик. Первый параметр в обработчик это функция, которая создала исключение, второй параметр - путь передаваемый функции, третий параметр - информация об исключении.

Пример удаления
shutil.rmtree('./tmp')

Перемещение или переименование файла или каталога. В случае каталога перемещение осуществляется вместе с подкаталогами.

shutil.move(src, dst)

  • src - файл или каталог, который будет перемещен или переименован;
  • dst - имя файла или каталога.

Пример копирования и переименования файла

shutil.move('../1.py', 'op.py')
shutil.move('op.py', 'yui.py')

Архивирование

Список форматов, доступных командам архивирования модуля можно получить так

print(shutil.get_archive_formats())

У меня на компьютере я получил следующий результат

[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

Создать архив каталога

make_archive(archive_name, format, root_dir)

  • archive_name - полное имя архива без расширения;
  • format - формат архива, например 'zip';
  • root_dir - каталог, который мы архивируем.

Пример

shutil.make_archive('im', 'zip', '../../Питон')

Развернуть архив

shutil.unpack_archive(filename[, extract_dir[, format]])

  • filename - полное имя архива;
  • extract_dir - каталог, куда разархивировать;
  • format - формат архива. По умолчанию метод пытается определить формат по расширению.

Пример

shutil.unpack_archive("../mclass.zip", "./")

На этом закончим и возьмем на вооружение данный модуль

Подписываемся на мой канал Old Programmer. Успехов в программировании на Python.

Список разделов канала Old Programmer, канала о программировании и программистах.

Именно
Именно