glob.glob每次迭代返回的文件顺序是否一致?
glob.glob返回的文件顺序是否固定?
首先需要纠正你代码里的导入错误:正确的写法应该是import glob(后续用glob.glob(path)调用)或者from glob import glob(直接用glob(path)调用)。
回到核心问题:glob.glob返回的文件顺序不保证每次迭代都保持一致,原因如下:
- 这取决于底层操作系统的文件系统实现:不同文件系统返回目录条目的规则不同,比如Linux下多数文件系统默认按inode顺序返回(和文件名排序无关),Windows的NTFS通常会按文件名排序,但这并非官方承诺的固定行为,存在变动可能。
- 当目录内的文件有新增、删除、修改等操作时,文件系统的目录条目顺序可能发生变化,进而导致glob返回的结果顺序改变。
如果需要确保每次得到的文件顺序固定,建议手动对返回结果进行排序,比如:
from glob import glob files = sorted(glob(path))
这样就能得到按文件名排序的稳定结果。
内容的提问来源于stack exchange,提问作者saksham singh
相关产品推荐
相关产品推荐

