Skip to content

Home Администрирование Копирование, перемещение, переименование и удаление данных
Копирование, перемещение, переименование и удаление данных

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

Исследование модуля shutil в оболочке IPython - это самый увлекательный способ знакомства с ним. В примере ниже мы будем использовать метод shutil.copytrее(), но в этом модуле имеется множество других методов копирования, принцип действия которых несколько отличается. Чтобы увидеть, в чем заключается разница между различными методами копирования, обращайтесь к документации по стандартной библиотеке языка Python. Взгляните на пример 6.2.

Пример 6.2. Использование модуля shutil для копирования дерева данных

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

Мы могли бы написать сценарий, который в качестве задания для планировщика cron дожидается, пока в каталоге появится «х» кадров. После того как сценарий обнаружит, что в каталоге находится необходимое число кадров, он мог бы переместить этот каталог в дPyroй каталог, где эти кадры будут подвергнуты обработке, или просто переместить их на дPyroй накопитель, достаточно быстрый, чтобы иметь возможность воспроизводить несжатый фильм с высоким разрешением.

Однако модуль shutil может не только копировать файлы, в нем также имеются методы для перемещения и удаления деревьев данных. В примере 6.3 демонстрируется возможность перемещения нашего дерева, а в примере 6.4 - возможность его удаления.

Пример 6.3. Перемещение дерева данных с помощью модуля shutil

Пример 6.4. Удаление дерева данных с помощью модуля shutil

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

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top