Резервное копирование каталогов и подкаталогов с использованием Python;Используйте os.walk или filecmp.dircmp, или что-то еще - PullRequest
1 голос
/ 28 ноября 2011

Я новичок в питоне.Мой вопрос заключается в том, какой подход я должен использовать для настройки процедуры резервного копирования файлов / каталогов, как описано ниже (os.walk или filecmp.dircmp или что-то еще).

Я хочу настроить процедуру резервного копирования следующим образом:

  1. Каждую ночь я хочу превратить "bakup_dir_a1" (и все его подкаталоги) в зеркало "local_dir_a "(и все его подкаталоги);Но каждую ночь.,,

  2. Сначала я хочу сравнить local_dir_a (и все его подкаталоги) с bakup_dir_a1 (и всеми его подкаталогами), чтобы выявить различия.

  3. Затем я хочу создать список файлов (полный путь, включая имя файла) в bakup_dir_a1 (и всех его подкаталогах), который будет заменен более новыми файлами, скопированными из local_dir_a (и всех его подкаталогов), и соответствующими датами последнего измененияновые и старые файлы;

  4. Далее я хочу создать список файлов (полный путь, включая имя файла) в bakup_dir_a1 (и всех его подкаталогах), которые будут просто удалены изbakup_dir_a (и все его подкаталоги);

  5. Далее я хочу создать архив (.rar или .zip) в bakup_dir_a2, содержащий копию всех файлов, указанных в абзацах №.3 и нет.4 выше.

  6. Наконец, я выполню зеркалирование, описанное в пункте 1 выше.

Я потратил некоторое время, пытаясь научиться работать с os.walk и filecmp.dircmp.
Я подозреваю, что os.walk может быть лучшим устройством для использованиямои цели.

Любые предложения будут высоко оценены.Спасибо, Марк

1 Ответ

1 голос
/ 28 ноября 2011

Для первого шага взгляните на модуль shutil , начиная с http://docs.python.org/library/shutil.html#shutil.copytree

Для второго шага filecmp.dircmp - это разумныйвыбор.

Для пятого шага взгляните на опции архивирования в модуле tarfile и модуль zipfile .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...