2341 发表于 2016-1-11 09:17:21

python定时下载FTP指定文件

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

    2.datetime:指定下载日期--每天的前一天
    3.re,过滤掉其他日期的数据
以下是代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#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()





页: [1]
查看完整版本: python定时下载FTP指定文件