Python根据文件

时间:2017-03-14 21:37:30

标签: python-2.7 ftp

我需要根据前一天的时间戳下载文件,因为包含文件名中日期的文件的命名有时会流失到另一天。

在Windows上使用python 2.7连接到在IIS上运行的FTP服务器。

这是我的代码:

import os, time
from ftplib import FTP

ftp = FTP('example.com')     # connect to host, default port
ftp.login("user", "pass")

ftp.set_pasv('true')
ftp.cwd('TestFolder')               # change into "TestFolder" directory
ftp.retrlines('LIST')           # list directory contents

ftp.quit()

它连接,我可以检索文件夹的列表,它如下所示:

03-13-17  10:00PM                 1337 X1234_20170313220001_1.zip
03-13-17  11:00PM               279579 X1234_20170313230001_1.zip
03-13-17  11:00PM                85477 X1234_20170313230001_2.zip
03-14-17  01:00AM                67923 X1234_20170314010001_1.zip
03-14-17  02:00AM                29524 X1234_20170314020001_1.zip
03-14-17  05:00AM                16022 X1234_20170314050001_1.zip
03-14-17  06:00AM                11272 X1234_20170314060002_1.zip

如果今天是03-14-17,如何将所有日期戳为03-13-17的文件下载到本地文件夹?

1 个答案:

答案 0 :(得分:0)

如果FTP服务器支持MLSD,您可以尝试以下操作。

ls = []

ftp.retrlines('MLSD', ls.append)

for entry in ls:
    print entry

然后你只需解析内容,获取一个datetime对象并进行比较。

modified_date = datetime.date.fromtimestamp(entry[(entry.index('=') + 1):entry.index(';')]) 

否则,如果可以,您可以使用库来帮助解决此问题,例如ftputil http://ftputil.sschwarzer.net/trac