我正在使用 pysftp 访问 SFTP 上的文件。但我想获取这些文件的最后修改日期并将其存储在 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()
这是我的连接类。
如何获取我正在访问的文件的日期。
谢谢。
Connection.stat
。它返回 SFTPAttributes
实例,其中包含带有 Unix 时间的 st_mtime
字段。
mtime = sftp.stat(remote_path).st_mtime
但是,如果您需要检索文件夹中所有文件的时间戳,则为每个文件调用
Connection.stat
是无效的。您已经在目录列表中获得了时间戳。 Connection.listdir_attr
返回目录中所有文件的 SFTPAttributes
。
另请参阅如何使用 pysftp 仅同步远程目录中已更改的文件?
你最好使用Paramiko:pysftp vs.Paramiko。