6

リモート サーバー上のディレクトリへの FTP アクセスしかなく、新しいファイルがディレクトリに表示されるとすぐに内容を取得したいと考えています。

FTP 経由で新しいファイルを監視できる FAM for Python のようなものはありますか?

4

1 に答える 1

11

サーバーのポーリングがオプションの場合:

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()
于 2012-08-25T08:46:16.913 に答える