如何解决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()))
一些参考:
- How to get FTP file's modify time using Python ftplib
- How can I set the last modified time of a file from python?
- Python Paramiko SFTP get file along with file timestamp/stat
- How can I set the last modified time of a file from python?
尽管您下载了一个文件夹中的所有文件,但我为每个文件都调用 MDTM
是一种矫枉过正。在这种情况下,您可以从使用 mlsd
或`dir 检索的目录列表中检索时间戳。见How to get FTP file's modify time using Python ftplib。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。