我正在尝试遍历我拥有的文件,并希望将每两个文件放在一对中,尤其是每两个文件彼此之间实际上是相关的。
我在我的目录中对文件进行了排序,我使用以下循环遍历目录并读取成对的文件:
for root, dirs, files in os.walk(TRAIN_DIR):
for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):
但是,我收到的文件 1 和文件 2 的顺序不同,而不是像在目录中那样应该紧接在彼此之后的那两个文件。 os.walk 会返回未排序的文件吗?我应该怎么做才能按排序顺序遍历文件?
谢谢。
编辑 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 排序,然后然后迭代。
for root, dirs, files in os.walk(TRAIN_DIR):
files.sort(key=...) # your predicate
...
