我需要根据前一天的时间戳下载文件,因为包含文件名中日期的文件的命名有时会流失到另一天。
在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的文件下载到本地文件夹?
答案 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