【发布时间】:2018-05-06 15:32:04
【问题描述】:
我想获取 PosixPath 对象的列表,并根据相应的文件大小对其进行排序。我正在尝试使用排序功能来做到这一点。我要用于排序的键是object.stat().st_size,其中object 是一个PosixPath 对象,stat() 返回一个os.stat_result 对象,st_size 是PosixPath 对象对应的文件大小。我知道如何使用operator.methodcaller 或operator.attrgetter 根据对象方法或对象属性进行排序,但我不知道如何使用methodcaller 返回的对象的属性。
我尝试了以下和一些变体,但它不起作用:
from operator import attrgetter, methodcaller
from pathlib import Path
sorted(Path('my_directory').glob('*.extension'), key=methodcaller('stat').st_size)
【问题讨论】:
标签: python python-3.x sorting functional-programming nested