drm
Дек. 26, 2008 11:39:38
Нужно скопировать файлы с фтп в соответствии с заданными расширениями. Причем не просто скопировать, а повторить исходную структуру каталогов, то есть если расположение файла: Каталог1 -> Каталог2 -> Файл1, то и скопированный файл должен находится в Каталог1 -> Каталог2. Нашёл на форуме пример, но там показано как скопировать файлы без сохранения структуры.
slivlen
Дек. 26, 2008 12:27:40
Надо рекурсивно обойти все директории на фтп и создать аналогичные на локальной машине и скопировать туда соответствующие файлы с фтп. Глянь примеры, думаю они помогут:
http://code.activestate.com/recipes/275594/http://code.activestate.com/recipes/436211/P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо =)
Ed
Дек. 26, 2008 12:36:40
Посмотрите вот этот аналог 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
slivlen
Дек. 26, 2008 14:08:08
bw
Ed, ftplib.ftpwalk?
ftpwalk - это ф-ция из рецепта по ссылке =)
drm
Дек. 26, 2008 20:43:15
Пытаюсь разобраться с ftpmirror.py
if mode[0] == 'd':
if verbose > 1:
print 'Remembering subdirectory', repr(filename)
subdirs.append(filename)
continue
Что означает сей фрагмен, не могу понять назначение слова continue в данном контексте.
shiza
Дек. 26, 2008 23:37:06
drm
наверное где-то выше был цикл?
igor.kaist
Дек. 27, 2008 08:39:24
Еще есть ftputil, замечательный модуль, который без труда можно найти. Он позволяет обращаться к фтп так же как к локальной файловой системе. функция walk уж точно там есть
drm
Дек. 29, 2008 10:57:03
slivlen
P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо
Спасибо, разобрался - действительно, это то что нужно.