python - 按日期排序 SFTP 文件
问题描述
我正在连接到带有文件列表的 sftp 文件夹。我需要按日期订购这些并提取最新的两个。
filepath= "/test/sftp/files/"
localpath= "C:/myfiles/"
os.get(filepath, localpath)
我可以使用 os.get 提取所有文件,但我尝试了 os.listdir 但这并没有按我需要的日期排序。我查看了操作系统库,但找不到按日期订购的东西。
解决方案
除了listdir
仅给出远程文件的名称之外,paramiko 还提供了一种listdir_attr
方法,该方法返回SFTPAttributes
包含文件名的列表以及st_mtime
字段(以及其他)。您只需在该st_mtime
字段上对该列表进行排序,即可获取按(修改)日期排序的文件列表:
client = paramiko.client.SSHClient()
client.connect(...) # use your connection parameters here
sftp = client.open_sftp()
remote_files = [x.filename for x in sorted(sftp.listdir_attr(), key = lambda f: f.st_mtime)]
推荐阅读
- javascript - 实现多语言时的 SASS Mixin 排版问题
- python - 目标是列表时的Pygame设置音量
- python-3.x - tkinter 中的格式化文本
- java - 检查传感器是否存在并且是否正常工作的可靠方法是什么?
- reactjs - 无法添加属性键,对象不可扩展错误 Apollo Client with antd
- android - 当应用程序在后台时如何显示来电?安卓
- javascript - 如何以角度从firebase中的实时数据库接收数据
- python - 在elasticsearch-py中索引特殊的JSON文件?
- c++ - 使用 vector::reserve 或 vector::resize 时发生了什么
- ansible - 如何通过 linux shell 使用 requirements.yml 确定 src 和版本来安装角色