微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:FTPLIB 下载带有原始修改时间的文件

如何解决Python:FTPLIB 下载带有原始修改时间的文件

我正在尝试编写一个 python 脚本来从 FTP 服务器下载文件,下面的代码我有用,但我很好奇有没有办法从 FTP 下载带有原始 modify time文件.用python可以吗?

Example: FileZilla have a feature to download the files with the original date time

with open(fileName,'wb') as write
    def writeData(chunk):
        fwrite.write(chunk)
    ftp_client.retrbinary('RETR {}'.format(downFileName),writeData)

解决方法

正如@Justin 正确评论的那样,只需在下载后设置时间戳即可。

remote_path = "/remote/path/foo.txt"
local_path = "/local/path/foo.txt"
timestamp = ftp.voidcmd("MDTM " + remote_path)[4:].strip()
mtime = parser.parse(timestamp)

with open(local_path,"wb") as f:
    ftp.retrbinary("RETR " + remote_path,f.write)

os.utime(local_path,(mtime.timestamp(),mtime.timestamp()))

一些参考:


尽管您下载了一个文件夹中的所有文件,但我为每个文件都调用 MDTM 是一种矫枉过正。在这种情况下,您可以从使用 mlsd 或`dir 检索的目录列表中检索时间戳。见How to get FTP file's modify time using Python ftplib

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。