监控远程FTP目录

2022-01-09 00:00:00 python ftp

问题描述

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

I only have FTP access to a directory on a remote server and would like to get the contents of new files as soon as they appear in the directory.

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

Is there any thing like FAM for Python that lets me monitor for new files over FTP?


解决方案

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

If polling the server is an option:

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('
'.join('+ %s' % i for i in add))
    print('
'.join('- %s' % i for i in remove))

ftp.quit()

相关文章