- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想获取 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)
最佳答案
它们不应该合并。您应该使用 lambda 作为键:
from pathlib import Path
sorted(Path('.').glob('*.py'), key=lambda p: p.stat().st_size)
或者,如果您想动态更改排序字段:
key_field = 'st_mtime'
sorted(Path('.').glob('*.py'),
key=lambda p: attrgetter(key_field)(p.stat()))
而且,如果你真的想使用 methodcaller
和 attrgetter
,你可以这样做:
sorted(Path('.').glob('*.py'), key=lambda p: attrgetter('st_size')(methodcaller('stat')(p)))
关于python - 将 methodcaller 和 attrgetter 与 sorted 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50201450/
我有一些特定的 android 代码,我使用参数在 android 中调用一些命令。 这是我现在用来检查特定参数名称的 android 代码,如果它存在,则获取它: @Override public
我有这个简单的功能: public int id() { return 0; } 我有这个测试功能: void test() { int a = id(); int b =
是否可以从 Python 中的 operator.methodcaller 获取函数名称? import operator as op mc = op.methodcaller('foo') prin
创建插件时的默认单元测试设置如下所示: void main() { const MethodChannel channel = MethodChannel( 'com.example/
我在 StackOverflow 上的第一个问题。我希望能够做类似的事情: SomeClass mock = mock(SomeClass.class); String methodName = "s
我想获取 PosixPath 对象的列表,并根据相应的文件大小对其进行排序。我正在尝试使用排序函数来做到这一点。我要用于排序的键是 object.stat().st_size,其中 object 是一
我们有使用 Spring 框架的 NamedParameterJdbcTemplate 的应用程序执行各种 JDBC 语句。此类中的大多数方法都已重载。例如,update() 的一个版本接受一个 Ma
我有一个继承自 Hub 类的 NotificationHub 类。 public class NotificationHub : Hub { public void Send(
我在 Java 中使用 Akka 类型的 actor。我有一个 BatchManager ,它是与 Controller 的接口(interface),还有一个 JobManager ,它创建一些工作
我正在尝试使用INRIA开发的工具spoon来解析一个项目的方法调用,我已经有一个方法mysql表,其中存储了所有方法(methodid、methodname、classid、classname)。我
我是一名优秀的程序员,十分优秀!