Форум сайта python.su
Нужно скопировать файлы с фтп в соответствии с заданными расширениями. Причем не просто скопировать, а повторить исходную структуру каталогов, то есть если расположение файла: Каталог1 -> Каталог2 -> Файл1, то и скопированный файл должен находится в Каталог1 -> Каталог2. Нашёл на форуме пример, но там показано как скопировать файлы без сохранения структуры.
Офлайн
Надо рекурсивно обойти все директории на фтп и создать аналогичные на локальной машине и скопировать туда соответствующие файлы с фтп. Глянь примеры, думаю они помогут:
http://code.activestate.com/recipes/275594/
http://code.activestate.com/recipes/436211/
P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо =)
Офлайн
Посмотрите вот этот аналог 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
Офлайн
Ed, ftplib.ftpwalk?
..bw
Офлайн
bwftpwalk - это ф-ция из рецепта по ссылке =)
Ed, ftplib.ftpwalk?
Офлайн
Пытаюсь разобраться с ftpmirror.py
if mode[0] == 'd':
if verbose > 1:
print 'Remembering subdirectory', repr(filename)
subdirs.append(filename)
continue
Офлайн
drm
наверное где-то выше был цикл?
Офлайн
Еще есть ftputil, замечательный модуль, который без труда можно найти. Он позволяет обращаться к фтп так же как к локальной файловой системе. функция walk уж точно там есть
Офлайн
slivlenСпасибо, разобрался - действительно, это то что нужно.
P.S. Плюс ко всему в исходниках Питона есть Tools/scripts/ftpmirror.py - это как раз то что тебе надо
Офлайн