Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 10, 2011 10:27:12

madhast
От:
Зарегистрирован: 2011-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

В общем задача такая. Есть папка источник(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)

Офлайн

#2 Авг. 10, 2011 11:26:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

такой функционал есть по умолчанию если вы используете 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)

Офлайн

#3 Авг. 10, 2011 11:55:03

madhast
От:
Зарегистрирован: 2011-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

Системы контроля версий для моей задачи это все равно что заказывать чартерный рейс чтобы на дачу слетать в 10 км от города. Архивы тоже не подходят, т.к. очень важна скорость. За ссылки спасибо.



Офлайн

#4 Авг. 10, 2011 12:13:28

madhast
От:
Зарегистрирован: 2011-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

А есть ссылки на толковое разъяснение работы этих модулей glob, os.stat os.path.exists os.copy?



Офлайн

#5 Авг. 10, 2011 12:15:02

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

http://www.doughellmann.com/PyMOTW/file_access.html - замечательное разъяснение всего, что вам надо. Плюс рекомендую все-таки поглядеть в сторону shutils (по ссылке тоже есть).



Офлайн

#6 Авг. 10, 2011 15:58:05

madhast
От:
Зарегистрирован: 2011-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

А на русском ничего подобного нет?



Офлайн

#7 Авг. 11, 2011 06:01:50

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

А rsync не подходит?



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

Офлайн

#8 Авг. 12, 2011 07:29:06

madhast
От:
Зарегистрирован: 2011-08-10
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

К сожалению нет, скрит пишется для windows системы.



Офлайн

#9 Авг. 12, 2011 11:08:25

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Скрипт сравнивающий директории и копирующий файлы

madhast
К сожалению нет, скрит пишется для windows системы.
Так есть порт http://www.itefix.no/i2/node/10650



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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version