请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16191|回复: 4

[求助] 如何从ftp下载一定时间数据?

[复制链接]

新浪微博达人勋

 成长值: 0
发表于 2020-7-4 02:18:51 | 显示全部楼层 |阅读模式
15金钱
本人小白,最近想从ftp下载数据,每次只想下载前五天的数据,请问如何实现?写了一个简单的程序,实现了批量,但是无法确定下载范围,请给予帮助,用什么方法实现,谢谢!

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-7-4 09:18:26 | 显示全部楼层
时间上正则匹配

如果文件名含有时间 用文件名匹配

如果没有 用系统的时间匹配
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-7-4 09:22:06 | 显示全部楼层
大概写了一下实现的方法,自己理解一下

from ftplib import FTP
import datetime

class solve:
    files = list()

    def hqwj(self, line):
        time = line[:17]
        size = line[18:38]
        name = line[39:]
        dt = datetime.datetime.strptime(time, "%m-%d-%y  %I:%M%p")
        filetype = size.strip(" ")
        filename = name.strip(" ")
        self.files.append([filename, filetype, dt])

    def getfiles(self, now=None, d_day=5):
        if now == None:
            now = datetime.datetime.now()
        d_hour = d_day * 24
        re = list()
        for file in self.files:
            if file[1] != "<DIR>":
                dtime = now - file[2]
                dhour = dtime.days * 24 + dtime.seconds / 3600
                if dhour <= d_hour:
                    re.append(file[0])
        return re


if __name__ == '__main__':
    ftp = FTP()
    ftp.connect("127.0.0.1", 21)
    ftp.login("ftpuser", "ftpuser")
    pwd_path = ftp.pwd()
    ftp.cwd('/')
    sl = solve()
    ftp.retrlines('LIST', sl.hqwj)
    print(sl.files)
    print(sl.getfiles())
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2020-7-4 09:22:15 | 显示全部楼层
topmad 发表于 2020-7-4 09:18
时间上正则匹配

如果文件名含有时间 用文件名匹配

用re模块吗?请问如何获取文件修改时间
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-7-4 15:17:16 | 显示全部楼层
jiajian0512 发表于 2020-7-4 09:22
用re模块吗?请问如何获取文件修改时间

正则表达式一般都用re。
文件的修改时间自己试着用ftplib结合MLST或MDTM命令从服务器上边回就是了。

善用百度吧,毕竟Python不像是NCL、GRADS这种小圈子软件,网上关于Python的FTP操作、时间操作等等资源很多。

ftplib(Python原生内置模块):https://docs.python.org/3.7/library/ftplib.html
时间操作,python-dateutil:https://dateutil.readthedocs.io/en/stable/examples.html
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表