python定时下载FTP指定文件

发布时间:2019-08-26 07:20:06编辑:auto阅读(1499)

    公司正好有个需求,定期从远端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 ftp
    
    def downloadfile():
            #格式化取到昨天的日期
    	d = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y%m%d')
    	remotepath = '/bssdata1/interface/yw_files/bak/'
    	#调用ftp连接函数
    	ftp = ftpconnect()
    	bufsize = 1024
    	ftp.cwd(remotepath)
    	list = ftp.nlst()
    	for name in list:
    	        #正则过滤掉其他日期
    		L = re.match(d,name)
    		if L:
    			path = '/data/download/' + name
    			f = open(path,'wb')
    			filename = 'RETR '+name
    			ftp.retrbinary(filename,f.write,bufsize)
    	f.close()
    	ftp.quit()
    downloadfile()


关键字