公司正好有个需求,定期从远端ftp下载指定昨天的数据,写了2个函数,一个是连接远端ftp,另一个是定期下载远端数据,用到了ftplib、datetime和正则re三个模块

    1.ftplib:连接和下载ftp数据

    2.datetime:指定下载日期--每天的前一天

    3.re,过滤掉其他日期的数据

以下是代码:

#coding=utf-8
#!/usr/bin/env python
from ftplib import FTP
import datetime
import re
def ftpconnect():ftp_server = 'IP'username = '账号'password = '密码'ftp = FTP()ftp.connect(ftp_server,21)ftp.login(username,password)print ftp.getwelcome()return ftpdef downloadfile():#格式化取到昨天的日期d = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y%m%d')remotepath = '/bssdata1/interface/yw_files/bak/'#调用ftp连接函数ftp = ftpconnect()bufsize = 1024ftp.cwd(remotepath)list = ftp.nlst()for name in list:#正则过滤掉其他日期L = re.match(d,name)if L:path = '/data/download/' + namef = open(path,'wb')filename = 'RETR '+nameftp.retrbinary(filename,f.write,bufsize)f.close()ftp.quit()
downloadfile()