После обработки каждого элемента листинга каталога выполняется возврат в исходное состояние. Выполняется вызов метода cwd() объекта FTP для перехода в каталог, путь к которому был ранее записан в локальной переменной, например, в инструкции как сделать фото экрана - это путь к картинкам, а затем осуществляется вызов функции chdir() для перехода вверх на один уровень в структуре локальных каталогов.
Подпрограмма find_type(). Эта подпрограмма не совсем подходит для определения типа файла или каталога по его пути доступа. В этом случае лучше использовать метод dir() объекта FTP, как в подпрограмме get_dir(). Однако данная подпрограмма является не совсем надежной в связи с небольшими отличиями в работе команды получения листинга каталога на разных серверах при передаче ей пути к файлу, а не к каталогу.
Вместо этого выполняется проверка того, обозначает ли этот путь доступа на удаленном компьютере путь к каталогу, в форме попытки перейти в него с использованием метода cwd(). Если вызов метода cwd() завершается неудачей, предполагается, что это — путь доступа е файлу, в ином случае — путь доступа к каталогу. Обратите внимание, что, согласно этому критерию, символическая ссылка на файл рассматривается как файл, а символическая ссылка каталог — как каталог. Такое поведение подпрограммы вполне приемлемо.
Подпрограмма make_link(). Данная подпрограмма предпринимает попытку получить на локальном компьютере символическую ссылку, которая является зеркальным отображением ссылки на удаленном компьютере. Она действует на основе предположения, что элемент в строке листинга каталога на удаленном компьютере обозначает источник и цель символической ссылки.