os.walk和排序文件名以数字开头



我正在尝试通过我拥有的文件循环,并且想将每个文件放入一对,尤其是每个彼此追随的每个文件实际上都是相关的。

我在目录中已将文件排序,我用以下内容循环循环并读取文件对:

for root, dirs, files in os.walk(TRAIN_DIR):
        for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):

但是,我以不同的订单接收file1和file2,而不是在目录中彼此之后立即出现的两个文件。操作系统会返回未分类的文件吗?为了按顺序浏览文件,该怎么办?

谢谢。

编辑1

这就是我运行 files.sort()的方式:

for root, dirs, files in os.walk(TRAIN_DIR):
            files.sort()
            for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):

返回文件的顺序取决于基础文件系统。如果您需要按排序顺序迭代文件名,最好自己执行:首先对files进行分类,然后然后 itterate。

for root, dirs, files in os.walk(TRAIN_DIR):
    files.sort(key=...)   # your predicate
    ...

最新更新