繁体   English   中英

如何从pysftp获取最后修改时间

[英]How to get last modified time from pysftp

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

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()

这是我的连接 class。

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

谢谢。

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

mtime = sftp.stat(remote_path).st_mtime

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

另请参阅如何使用 pysftp 仅同步远程目录中已更改的文件?


不过,您最好使用 Paramiko: pysftp vs. Paramiko

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM