首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python FTP服务器下载文件名中包含特定关键字的最新文件

Python FTP服务器下载文件名中包含特定关键字的最新文件
EN

Stack Overflow用户
提问于 2018-08-03 18:27:03
回答 1查看 1.7K关注 0票数 0

我想用python从FTP服务器上下载最新的文件。我能够连接到服务器并下载特定目录中的所有文件,但我不知道如何找到主题中具有特定关键字的最新文件。

以下是我正在使用的代码。但它会返回所有具有*.png关键字名称的文件。我不知道如何在这里应用os.path.getctime来获得我想要的所有帮助的最新file.Thats。

代码语言:javascript
复制
        import ftplib
        import os

        ftp = ftplib.FTP('test.rebex.net', 'demo','password')
        ftp.retrlines('LIST')

        ftp.cwd("/pub")

        ftp.retrlines('LIST')

        ftp.cwd("example")

        ftp.retrlines('LIST')
        filematch='*.png'
        target_dir='C:/Users/muzamal.pervez/Desktop/OPD Claims'
        for filename in ftp.nlst(filematch):
            target_file_name = os.path.join(target_dir,os.path.basename(filename))
            with open(target_file_name,'wb') as fhandle:
                    ftp.retrbinary('RETR %s' %filename, fhandle.write)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-04 06:27:06

已解决。

代码语言:javascript
复制
    import ftplib
    import os
    import time
    from dateutil import parser

    ftp = ftplib.FTP('test.rebex.net', 'demo','password')
    ftp.retrlines('LIST')

    ftp.cwd("pub")
    ftp.cwd("example")
    ftp.retrlines('LIST')

    names = ftp.nlst()
    final_names= [line for line in names if 'client' in line]

    latest_time = None
    latest_name = None

    for name in final_names:
        time = ftp.sendcmd("MDTM " + name)
        if (latest_time is None) or (time > latest_time):
            latest_name = name
            latest_time = time

    print(latest_name)
    file = open(latest_name, 'wb')
    ftp.retrbinary('RETR '+ latest_name, file.write)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51670631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档