【发布时间】:2021-04-01 01:56:32
【问题描述】:
假设我在一个目录中有狗的图像,其名称和编号为:
dog 1.jpg
dog 2.jpg
dog 3.jpg
.
.
dog 11.jpg
dog 12.jpg
当我执行sorted(glob.glob('that_dir/*jpg')) 和print 时,它返回:
dog 1.jpg
dog 10.jpg
dog 11.jpg
dog 12.jpg
.
.
dog 8.jpg
dog 9.jpg
在这种情况下,有没有办法让它按dog 1.jpg, dog 2.jpg .. dog 12.jpg 的顺序返回?
还是完全避免这种编号方法并改用前导零之类的方法更明智?
【问题讨论】:
-
使用 sorted(glob.glob('that_dir/*jpg'), key = lambda x: int(x[4:].split('.')[0]))
-
我认为您要查找的内容称为“自然排序”-如果您使用该术语进行搜索,您应该会找到很多。但是添加前导零是快速简便的解决方案。
-
嘿,谢谢马克!就是这样!我以前从未听说过这个词,所以这对我来说是新事物!
标签: python python-3.x glob