Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2008 11:39:38

drm
От:
Зарегистрирован: 2008-12-25
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

Нужно скопировать файлы с фтп в соответствии с заданными расширениями. Причем не просто скопировать, а повторить исходную структуру каталогов, то есть если расположение файла: Каталог1 -> Каталог2 -> Файл1, то и скопированный файл должен находится в Каталог1 -> Каталог2. Нашёл на форуме пример, но там показано как скопировать файлы без сохранения структуры.



Офлайн

#2 Дек. 26, 2008 12:27:40

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

Надо рекурсивно обойти все директории на фтп и создать аналогичные на локальной машине и скопировать туда соответствующие файлы с фтп. Глянь примеры, думаю они помогут:
http://code.activestate.com/recipes/275594/
http://code.activestate.com/recipes/436211/

P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо =)



Офлайн

#3 Дек. 26, 2008 12:36:40

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

Посмотрите вот этот аналог os.walk для ftp: http://code.activestate.com/recipes/499334/
Вот работающий пример:

import ftplib

session = ftplib.FTP()
session.connect('ftp.debian.org')
session.login()

for entry in ftpwalk(session, '/debian'):
print entry



Офлайн

#4 Дек. 26, 2008 13:31:04

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Копирование файлов с сохранением структуры

Ed, ftplib.ftpwalk?

..bw



Офлайн

#5 Дек. 26, 2008 14:08:08

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

bw
Ed, ftplib.ftpwalk?
ftpwalk - это ф-ция из рецепта по ссылке =)



Офлайн

#6 Дек. 26, 2008 20:43:15

drm
От:
Зарегистрирован: 2008-12-25
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

Пытаюсь разобраться с ftpmirror.py

if mode[0] == 'd':
if verbose > 1:
print 'Remembering subdirectory', repr(filename)
subdirs.append(filename)
continue
Что означает сей фрагмен, не могу понять назначение слова continue в данном контексте.



Офлайн

#7 Дек. 26, 2008 23:37:06

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

drm
наверное где-то выше был цикл?



Офлайн

#8 Дек. 27, 2008 08:39:24

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

Еще есть ftputil, замечательный модуль, который без труда можно найти. Он позволяет обращаться к фтп так же как к локальной файловой системе. функция walk уж точно там есть



Офлайн

#9 Дек. 29, 2008 10:57:03

drm
От:
Зарегистрирован: 2008-12-25
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Копирование файлов с сохранением структуры

slivlen
P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо
Спасибо, разобрался - действительно, это то что нужно.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version