python - Python 3.6 - 枚举文件
问题描述
我正在尝试在文件夹中循环一系列 jpg 文件。我找到了示例代码:
for n, image_file in enumerate(os.scandir(image_folder)):
这将遍历image_folder
. 但是,它似乎没有遵循任何顺序。我有我的文件名,如000001.jpg
, 000002.jpg
, 000003.jpg
,... 等等。但是当代码运行时,它并没有遵循顺序:
000213.jpg
000012.jpg
000672.jpg
....
这里似乎有什么问题?
解决方案
这是os.scandir()的相关位:
操作系统。scandir <em>(路径='.')
返回与path
os.DirEntry
给出的目录中的条目相对应的对象的迭代器。条目以任意顺序产生,特殊条目 和不包括在内。'.'
'..'
您不应期望它按任何特定顺序排列。listdir()
如果您考虑将其作为替代方案,情况也是如此。
如果您严格要求它们按顺序排列,请考虑先对它们进行排序:
scanned = sorted([f for f in os.scandir(image_folder)], key=lambda f: f.name)
for n, image_file in enumerate(scanned):
# ... rest of your code
推荐阅读
- python-3.x - 如何使用 selenium 和 python 在 `::before` 部分中获取文本?
- node.js - 如何跨子域共享快速会话?
- node.js - Jenkins & NodeJS - 工作永远运行
- hdfs - 为什么使用整数类型作为分区键可以最小化内存使用?
- r - 如何强制 model.matrix/model.Matrix() 保持因子水平的原始顺序......?
- java - 我不知道如何使用 JPQL [AND] 和 [OR]
- javascript - 如何在javascript中拖动d3.js中的节点?
- android - 如何从 Firebase 实时数据库检索数据到 mySqlite?
- google-apps-script - 我可以将工作表下载到特定的计算机硬盘驱动器,或者将备份和同步中的工作表移动到硬盘驱动器吗?
- sql - 如何检查服务器上是否存在给定的数据库?