pysftp:如何更新上次修改日期

pysftp: How to update last modified date

我想在对某个文件进行一些处理后将其移动到另一个目录。

使用 Connection.rename

轻松移动文件
import pysftp
conn = pysftp.Connection(host = 'host', username = 'user', password = 'password')
remote_src = '/dir1/file1.csv'
remote_dest = '/dir2/archive_file1.csv'
conn.rename(remote_src, remote_dest)
conn.close()

但是 LastModified 日期与原始文件相同。
有没有办法在重命名时将 LastModified 日期更新为当前日期?

重命名(移动)文件不会改变文件的修改时间。它改变了文件夹的修改时间。

如果你想改变文件的修改时间,你必须明确地做。 pysftp 没有 API 。但是你可以使用 Paramiko SFTPClient.utime. See also .

感谢@MartinPrikryl 的回答,我终于实现了我的目的。

pysftp.Connection has a property sftp_client which as per documentation returns the active paramiko.SFTPClient 对象。
我用这个 属性 来调用 paramiko.SFTPClient.utime

import pysftp
conn = pysftp.Connection(host = 'host', username = 'user', password = 'password')
remote_src = '/dir1/file1.csv'
remote_dest = '/dir2/archive_file1.csv'
conn.rename(remote_src, remote_dest)
# below is the line I added after renaming the file
conn.sftp_client.utime(remote_dest, None)
conn.close()