Форум сайта python.su
В общем задача такая. Есть папка источник(src), с подпапками и папка назначения(dest). В каталоге dest могут лежать фалы с такими же названиями как и в каталогах src, но с более старой датой изменения, или их может вообще не быть. Задача - обновить устаревшие файлы и добавить отсутствующие файлы в каталог dest. Но есть нюанс. Допустим src выглядит так:
/src/
/dir1
/file1.*
/file2.*
…….
/fileN.*
/dir2
/file1.*
/file2.*
…….
/fileN.*
а каталог dest так:
/desr/
/dir1
/file1.*
/file2.*
…….
/fileN.*
Нюанс заключается в следующем - скопированы должны быть только содержимое каталога src/dir1 в dest/dir1 с заменой устаревших и копированием отсутствующих файлов. А каталог src/dir2 не должен копироваться.
Уважаемые форумчане, есть у кого-нить какие-нить идеи или советы как это лучше реализовать? Может литературу посоветуете.
Отредактировано (Авг. 10, 2011 10:28:28)
Офлайн
такой функционал есть по умолчанию если вы используете git,cvs,svn,bazar…
http://ru.wikipedia.org/wiki/Git
http://ru.wikipedia.org/wiki/Svn
правда не везде получится избавиться от накопления истории изменений.
такой функционал реализует практически любой архиватор 7z,rar,….в режиме update архива (те если не очень много данных и вы не очень спешите то просто несколько вызовов subprocess.call те паковка образца нулевым сжатием, обновление архива, распаковка)
если приспичило писать самостоятельно - то glob, os.stat os.path.exists os.copy
Отредактировано (Авг. 10, 2011 11:37:23)
Офлайн
Системы контроля версий для моей задачи это все равно что заказывать чартерный рейс чтобы на дачу слетать в 10 км от города. Архивы тоже не подходят, т.к. очень важна скорость. За ссылки спасибо.
Офлайн
А есть ссылки на толковое разъяснение работы этих модулей glob, os.stat os.path.exists os.copy?
Офлайн
http://www.doughellmann.com/PyMOTW/file_access.html - замечательное разъяснение всего, что вам надо. Плюс рекомендую все-таки поглядеть в сторону shutils (по ссылке тоже есть).
Офлайн
А на русском ничего подобного нет?
Офлайн
А rsync не подходит?
Офлайн
К сожалению нет, скрит пишется для windows системы.
Офлайн
madhastТак есть порт http://www.itefix.no/i2/node/10650
К сожалению нет, скрит пишется для windows системы.
Офлайн