首页 > 解决方案 > 如何按修改日期对使用 Paramiko 从 SFTP 服务器提取的文件列表进行排序?

问题描述

我有这段代码,它使用 Paramiko 从服务器中提取文件。我怎样才能让这些文件按修改日期排序?

ssh = paramiko.SSHClient()
# automatically add keys without requiring human intervention
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )

ssh.connect(sftpURL, username=sftpUser, password=sftpPass)

sftp = ssh.open_sftp()
filesInSFTP = sftp.listdir(sftpPullDirectory)
# Get only the XML and XLSX files
filesInSFTP = [file for file in filesInSFTP if file.lower().endswith(('.xml', '.xlsx'))]

标签: pythonpython-3.xsftpparamiko

解决方案


使用 .检索具有文件属性(包括修改时间)的列表SFTPClient.listdir_attrSFTPAttributes.st_mtime然后按字段对列表进行排序。

filesInSFTP = sftp.listdir_attr(sftpPullDirectory)
filesInSFTP.sort(key = lambda f: f.st_mtime)

相关问题:


强制性警告:请勿使用-这样做AutoAddPolicy会失去对MITM 攻击的保护。有关正确的解决方案,请参阅Paramiko "Unknown Server"


推荐阅读