如何从 pysftp 获取上次修改时间

Posted

技术标签:

【中文标题】如何从 pysftp 获取上次修改时间【英文标题】:How to Get Last Modified Time From pysftp 【发布时间】:2021-11-22 06:18:09 【问题描述】:

我正在使用 pysftp 访问 sftp 上的文件。但我想获取这些文件的 last_modified 日期并将其存储在 mongo 中。这是为了下次我运行代码时再次访问日期。 我找不到返回文件日期的函数。

class My_Connection(pysftp.Connection):
    def __init__(self, *args, **kwargs):
        try:
            if kwargs.get('cnopts') is None:
                kwargs['cnopts'] = pysftp.CnOpts()
        except pysftp.HostKeysException as e:
            self._init_error = True
            raise paramiko.ssh_exception.SSHException(str(e))
        else:
            self._init_error = False

        self._sftp_live = False
        self._transport = None
        super().__init__(*args, **kwargs)

    def __del__(self):
        if not self._init_error:
            self.close()

这是我的连接类。

如何获取我正在访问的文件的日期。

谢谢。

【问题讨论】:

【参考方案1】:

如果要检索单个特定文件的时间戳,请使用Connection.stat。它返回SFTPAttributes 实例,该实例具有带Unix 时间的st_mtime 字段。

mtime = sftp.stat(remote_path).st_mtime

但如果您需要检索文件夹中所有文件的时间戳,则为每个文件调用Connection.stat 将无效。您已经在目录列表中有时间戳。 Connection.listdir_attr 返回目录中所有文件的SFTPAttributes

另见How to sync only the changed files from the remote directory using pysftp?

【讨论】:

以上是关于如何从 pysftp 获取上次修改时间的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从资产文件中获取上次修改日期?

DataLake 文件 - 上次修改日期时间

NSFileManager OS X 上次修改日期

如何在 MS Azure 中为我的 blob 存储中的 blob 提取上次修改日期

如何查看AIX系统上次密码修改时间

如何从 iPhone 中后台进程的名称访问(复制/修改)特定的 appfile 目录?