Единое дерево каталогов для обхода локальных файлов, ftp, http в python

В моей программе testkernel я хотел бы пройтись по дереву каталогов с помощью различных протоколов. Я думаю, что мне нужно что-то вроде os.walk, но это работает для ftp, а также для типичных списков каталогов http (например, http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.2-precise/). Это в духе openanything.py.

Для обхода FTP я нашел несколько вариантов, в том числе ftptool и ftputil, преимущество которого заключается в том, что он находится в Ubuntu. Я уже реализовал свой собственный очень простой рекурсивный обход списков каталогов http, используя Beautiful Soup. Но перед тем, как объединить их вместе с os.walk, интересно, было ли это уже сделано.

Я знаю, что семантика обхода http не определена четко, как для файловых систем и ftp, поэтому, думаю, мне придется предположить, что каталоги обозначаются URL-адресом с завершающей косой чертой, которая расширяет URL-адрес каталога. И я должен быть осторожен, чтобы избежать бесконечных прогулок. Но даже для подмножества os.walk (например, только сверху вниз) такие вещи кажутся полезными.

Это было сделано? Любой совет?


person nealmcb    schedule 24.02.2012    source источник


Ответы (1)


Что ж, я написал фрагмент кода, который на самом деле проходит через веб-каталоги и загружает файлы: (хотя этот фрагмент кода может нуждаться в улучшении, таком как загрузка изображений, загрузка pdf и т. д.), но в любом случае вот исходный код/модуль:

Рекурсивно загружать файлы и каталоги из удаленного источника

person bunkus    schedule 21.04.2012
comment
Спасибо, но я хочу перейти от существующего кода только для http, на который я указал, к более общему подходу, который использует интерфейс os.walk, чтобы его можно было унифицировать с ftp, локальными файлами и т. д. - person nealmcb; 21.04.2012