glob.glob读取文件的顺序是什么?如果没有特定顺序,能否指定一个?

3 投票
1 回答
705 浏览
提问于 2025-04-18 15:35

我在Python中使用以下命令来读取一个文件夹里所有文件的名字:

import glob
list_of_files = glob.glob(".../*.txt")

但是,"list_of_files"这个列表里的元素好像没有什么特定的顺序。至少我看不出来。比如说,它们是按字母顺序读取的吗?还是按最后修改的时间顺序读取的呢?

1 个回答

4

glob这个工具是用来获取文件名的,它会调用os.listdir这个函数。根据listdir的说明,它会返回一个列表,里面包含指定目录下的所有文件和文件夹的名字。这个列表的顺序是随机的。

所以,你不能指望这个列表的顺序是固定的——即使看起来有顺序,那也可能是因为你使用的系统不同而导致的不可靠。你需要根据自己的需求,自己对文件列表进行排序。

从我看到的情况来看,glob并没有包含任何对结果进行排序的代码。如果你有兴趣,可以看看这个模块,它其实很短,能让你了解它的内部工作原理。

撰写回答