Skip to main content
 首页 » 编程设计

Python ftplib,通过ftp获取最新文件

2025年05月04日11kevingrace

我知道如何设置下载这样的文件,但大多数文件都没有命名为 file-LATEST。我怎样才能下载最新的文件?

通过:

  • 修改日期
  • 时间戳
  • if version.current < version.new then download

这是我目前所拥有的:

#!/usr/bin/env python 
 
import ftplib 
import os 
import socket 
 
HOST = 'ftp.site.org' 
DIRN = 'dir/' 
FILE = 'filename-LATEST.tar.gz' 
 
def main(): 
    try: 
    f = ftplib.FTP(HOST) 
except (socket.error, socket.gaierror), e: 
    print 'ERROR: cannot reach "%s"' % HOST 
    return 
print '*** Connected to host "%s"' % HOST 
 
try: 
    f.login() 
except ftplib.error_perm: 
    print 'ERROR:: cannot login anonymously' 
    f.quit() 
    return 
print '*** Logged in as "anonymous"' 
 
try: 
    f.cwd(DIRN) 
except ftplib.error_perm: 
    print 'ERROR: cannot CD to "%s"' % DIRN 
    f.quit() 
    return 
print '*** Changed to "%s" folder' % DIRN 
 
try: 
    f.retrbinary('RETR %s' % FILE, open(FILE, 'wb').write) 
except ftplib.error_perm: 
    print 'ERROR: cannot read file "%s"' % FILE 
    os.unlink(FILE) 
else: 
    print '*** Downloaded "%s" to CWD' % FILE 
f.quit() 
return 
 
if __name__ == '__main__': 
main() 

请您参考如下方法:

你必须像 ftplib 的文档那样执行 ftp.retrlines('LIST',callback) 并解析结果