用Python知道如何在ftp位置更新任何文件的方法是什么?

时间:2018-07-17 05:04:42

标签: python python-2.7 ftp python-3.6

我正在从ftp位置下载文件,并能够使用以下代码成功完成该操作-

import ftplib
server = ftplib.FTP()
server.connect('HOST', PORT)
server.login('USER_NAME','PASSWORD')
server.dir()
server.retrbinary("RETR " + 'xyz.csv' ,open('xyz.csv', 'wb').write)
server.quit()

现在我有一个要求-需要检查以上文件是否已更新,然后我需要运行另一个python脚本。

为此,我想使用上次修改日期,但无法在ftplib库中看到任何方法。

有人遇到过同样的问题吗?如何解决? 请建议如何做?

1 个答案:

答案 0 :(得分:1)

您可以使用dir方法从文件列表中获取最后修改的时间戳,并自行解析第6至第8个字段。请注意,第8个字段可以是一年或一天中的某个时间,在这种情况下,年份是当前年份。但是话又说回来,您根本不必解析日期/时间,因为您需要的只是检测更改。

>>> from ftplib import FTP
>>> ftp = FTP('ftp.redhat.com')
>>> ftp.login()
'230 Login successful.'
>>> ftp.dir()
lrwxrwxrwx    1 ftp      ftp             1 Dec 19  2009 pub -> .
drwxr-xr-x   45 ftp      ftp          4096 Jul 05 16:46 redhat
>>> l=[]
>>> ftp.dir(lambda x: l.append(x))
>>> l
['lrwxrwxrwx    1 ftp      ftp             1 Dec 19  2009 pub -> .', 'drwxr-xr-x   45 ftp      ftp          4096 Jul 05 16:46 redhat']
>>>