pysftp - 如何从 pysftp 获取上次修改时间
问题描述
我正在使用 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()
这是我的连接类。
如何获取我正在访问的文件的日期。
谢谢。
解决方案
如果要检索单个特定文件的时间戳,请使用Connection.stat
. 它返回SFTPAttributes
实例,该实例st_mtime
具有 Unix 时间的字段。
mtime = sftp.stat(remote_path).st_mtime
但是,如果您需要检索文件夹中所有文件的时间戳,则调用Connection.stat
每个文件都是无效的。您已经在目录列表中有时间戳。Connection.listdir_attr
返回一个目录中的SFTPAttributes
所有文件。
推荐阅读
- php - 无法创建具有外键约束的表
- database - Oracle 12c:尝试在后台线程中获取缓存的 PreparedStatement 时出现问题
- javascript - 如何在形成正则表达式来比较两个句子时仅忽略动态内容的空格?
- python - 如何检测一键鼠标的准确位置,并将该位置用于其他工作
- flutter - 将列表视图子集中在选择上
- apache-flink - flink中基于系统时间的事件触发
- ansible - 使用省略选项的问题
- azure-devops - 由于对链接服务的授权,Azure ADF ARM 模板部署失败
- php - 在 EOSIO 中通过 API 创建账户
- html - 没有子表的 `th` 元素的直接表`th` 元素的 CSS 选择器 - 是可能的