【问题标题】:Monitor remote FTP directory监控远程FTP目录
【发布时间】:2012-08-24 23:47:40
【问题描述】:

我只能通过 FTP 访问远程服务器上的目录,并且希望在新文件出现在目录中时立即获取它们的内容。

有没有类似 FAM for Python 的东西可以让我通过 FTP 监控新文件?

【问题讨论】:

    标签: python ftp


    【解决方案1】:

    如果轮询服务器是一个选项:

    from ftplib import FTP
    from time import sleep
    
    ftp = FTP('localhost')
    ftp.login()
    
    def changemon(dir='./'):
        ls_prev = set()
    
        while True:
            ls = set(ftp.nlst(dir))
    
            add, rem = ls-ls_prev, ls_prev-ls
            if add or rem: yield add, rem
    
            ls_prev = ls
            sleep(5)
    
    for add, rem in changemon():
        print('\n'.join('+ %s' % i for i in add))
        print('\n'.join('- %s' % i for i in remove))
    
    ftp.quit()
    

    【讨论】: