Paramiko获取排序的目录列表

时间:2018-12-17 20:29:17

标签: python sftp paramiko

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

1 个答案:

答案 0 :(得分:3)

无法使SFTPClient.listdir_attr返回排序列表。

排序很容易:

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

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

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