python - 如何按修改日期对使用 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'))]
解决方案
使用 .检索具有文件属性(包括修改时间)的列表SFTPClient.listdir_attr
。SFTPAttributes.st_mtime
然后按字段对列表进行排序。
filesInSFTP = sftp.listdir_attr(sftpPullDirectory)
filesInSFTP.sort(key = lambda f: f.st_mtime)
相关问题:
强制性警告:请勿使用-这样做AutoAddPolicy
会失去对MITM 攻击的保护。有关正确的解决方案,请参阅Paramiko "Unknown Server"。