Estendendo a função os.walk do Python no servidor FTP

Como posso fazeros.walk atravessar a árvore de diretórios de um banco de dados FTP (localizado em um servidor remoto)? A maneira como o código está estruturado agora é (comentários fornecidos):

import fnmatch, os, ftplib

def find(pattern, startdir=os.curdir): #find function taking variables for both desired file and the starting directory
    for (thisDir, subsHere, filesHere) in os.walk(startdir): #each of the variables change as the directory tree is walked
        for name in subsHere + filesHere: #going through all of the files and subdirectories
            if fnmatch.fnmatch(name, pattern): #if the name of one of the files or subs is the same as the inputted name
                fullpath = os.path.join(thisDir, name) #fullpath equals the concatenation of the directory and the name
                yield fullpath #return fullpath but anew each time

def findlist(pattern, startdir = os.curdir, dosort=False):
    matches = list(find(pattern, startdir)) #find with arguments pattern and startdir put into a list data structure
    if dosort: matches.sort() #isn't dosort automatically False? Is this statement any different from the same thing but with a line in between
    return matches

#def ftp(
#specifying where to search.

if __name__ == '__main__':
    import sys
    namepattern, startdir = sys.argv[1], sys.argv[2]
    for name in find(namepattern, startdir): print (name)

Estou pensando que preciso definir uma nova função (ou seja,def ftp()) para adicionar essa funcionalidade ao código acima. Receio, no entanto, que oos.walk Por padrão, a função percorrerá apenas as árvores de diretório do computador em que o código é executado.

Existe uma maneira de estender a funcionalidade doos.walk ser capaz de atravessar uma árvore de diretórios remotos (via FTP)?

questionAnswers(2)

yourAnswerToTheQuestion