Paramiko获取排序的目录列表


问题内容

我可以从Paramiko获取目录列表。并且有了listdir_attr我的属性。但是,我需要按文件名对该列表进行排序。如果返回字典列表,则可以使用lambda进行排序。但是用它返回一个列表,SFTPAttributes除了创建一个包含我关心的数据的字典的新列表并对该列表进行排序之外,我不知道该如何进行排序。在此之前,有没有一种方法可以获取按文件名排序的目录列表?


问题答案:

没有办法SFTPClient.listdir_attr返回已排序的列表。

排序很容易:

files = sftp.listdir_attr()
files.sort(key = lambda f: f.filename)

举例来说,如果您只想按大小从大到小对文件进行排序:

from stat import S_ISDIR, S_ISREG



files = [f for f in files if not S_ISDIR(f.st_mode)]
files.sort(key = lambda f: f.st_size, reverse = True)