python - glob.glob 回馈无序文件
问题描述
我有一个包含多个图像文件的目录,这些文件都称为f"name{i}" for i in range(64)。 阅读它们后,我正在对每张图像执行操作。要遍历我使用的目录中的所有图像:
img_list = []
for img in glob.glob(rf"name_results\*.png"):
img_list.append(img)
img_list.sort(reverse=True)
print(img)
我拼命尝试对列表进行排序,但这似乎对输出没有任何影响:
name_results\name0.png
name_results\name1.png
name_results\name10.png
name_results\name11.png
name_results\name12.png
name_results\name13.png
name_results\name14.png
name_results\name15.png
name_results\name16.png
name_results\name17.png
name_results\name18.png
name_results\name19.png
name_results\name2.png
name_results\name20.png
name_results\name21.png
name_results\name22.png
name_results\name23.png
name_results\name24.png
name_results\name25.png
name_results\name26.png
name_results\name27.png
name_results\name28.png
name_results\name29.png
name_results\name3.png
name_results\name30.png
name_results\name31.png
name_results\name32.png
name_results\name33.png
name_results\name34.png
name_results\name35.png
name_results\name36.png
name_results\name37.png
name_results\name38.png
name_results\name39.png
name_results\name4.png
name_results\name40.png
name_results\name41.png
name_results\name42.png
name_results\name43.png
name_results\name44.png
name_results\name45.png
name_results\name46.png
name_results\name47.png
name_results\name48.png
name_results\name49.png
name_results\name5.png
name_results\name50.png
name_results\name51.png
name_results\name52.png
name_results\name53.png
name_results\name54.png
name_results\name55.png
name_results\name56.png
name_results\name57.png
name_results\name58.png
name_results\name59.png
name_results\name6.png
name_results\name60.png
name_results\name61.png
name_results\name62.png
name_results\name63.png
name_results\name7.png
name_results\name8.png
name_results\name9.png
不知道我能做些什么来将它们存储在一个列表中,就好像它是f"name{i}" for i in range(64);含义从 name1.png 到 name63.png 以升序排列。
解决方案
使用key in 进行排序:
import re
img_list = [f"name_results\name{i}" for i in range(12)]
img_list.sort(key=lambda x: int(re.findall(r'\d+',x )[0]))
img_list
输出:
['name_results\name0',
'name_results\name1',
'name_results\name2',
'name_results\name3',
'name_results\name4',
'name_results\name5',
'name_results\name6',
'name_results\name7',
'name_results\name8',
'name_results\name9',
'name_results\name10',
'name_results\name11']
推荐阅读
- postgresql - 无法写入 postgres 数据库 Heroku
- python - 包可以跨 Anaconda 环境共享吗?
- php - 团队的Mysql表,选择队长和另一名球员
- java - 我如何多次设置标题工具栏?
- java - 从静态 AsyncTask 方法中访问 Android UI 元素
- log4j - Log4j1.x -> Log4j2 属性文件到 xml
- node.js - moment.js 以 TZ 格式格式化日期
- php - 获取 groupBy 中的最后一项
- android - 在 Android 意图中传递模拟类
- php - 将 b64 图片支持添加到 HTML Purifier 的默认白名单中