Python glob() 返回 Unexpected/Strange 模式中的路径列表

Python glob() returning list of paths in an Unexpected/Strange Pattern

我正在使用 glob() 来获取 list 中某些文件的相对路径,它 returns 是一个包含所有名称但采用意外模式而不是按字母顺序排列的列表命令。 这只是一个最小的可重现示例,它也显示了相同的行为。

from glob import glob

default = 'database/test/gcide_'
def_paths = glob(default + '*.json')

for i in def_paths:
    print(i)

这是它读取目录的截图

以下是它的路径列表 returns

database/test/gcide_w.json
database/test/gcide_n.json
database/test/gcide_x.json
database/test/gcide_q.json
database/test/gcide_a.json
database/test/gcide_v.json
database/test/gcide_c.json
database/test/gcide_d.json
database/test/gcide_o.json
database/test/gcide_r.json
database/test/gcide_j.json
database/test/gcide_s.json
database/test/gcide_z.json
database/test/gcide_k.json
database/test/gcide_b.json
database/test/gcide_u.json
database/test/gcide_f.json
database/test/gcide_e.json
database/test/gcide_p.json
database/test/gcide_g.json
database/test/gcide_h.json
database/test/gcide_i.json
database/test/gcide_l.json
database/test/gcide_m.json
database/test/gcide_y.json
database/test/gcide_t.json

我最近重新安装了我的 OS 并从我做的备份中恢复了我的文件,我怀疑这是否与这个问题有任何关系,因为在此之前它工作正常,但我不确定。

glob's documentation的第一句说:

The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order.

因此,您从 glob 获得的结果没有顺序。你可以按照你想要的任何方式排序,as shown in this answer.