Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python os.walk和以数字开头的文件名排序_Python_For Loop_Operating System - Fatal编程技术网

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

Python os.walk和以数字开头的文件名排序,python,for-loop,operating-system,Python,For Loop,Operating System,我试图循环浏览我拥有的文件,并希望将每两个文件放在一对中,特别是后面的每两个文件实际上是相关的 我在我的目录中对文件进行了排序,并使用以下方法在目录中循环并读取文件对: for root, dirs, files in os.walk(TRAIN_DIR): for file1, file2 in itertools.izip_longest(files[::2], files[1::2]): 但是,我以不同的顺序接收file1和file2,而不是像目录中那样紧随其后的两个文件

我试图循环浏览我拥有的文件,并希望将每两个文件放在一对中,特别是后面的每两个文件实际上是相关的

我在我的目录中对文件进行了排序,并使用以下方法在目录中循环并读取文件对:

for root, dirs, files in os.walk(TRAIN_DIR):
        for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):
但是,我以不同的顺序接收file1和file2,而不是像目录中那样紧随其后的两个文件。那么os.walk是否返回未排序的文件?我应该怎么做才能按排序的顺序浏览文件

谢谢

编辑1

这就是我如何运行
文件.sort()


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


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


操作系统不保证返回按百分比排序的目录项。此外,“从数字开始”是什么意思?因为如果您有1_xx、2_yy、10_zz,如果您只使用字典排序,10_zz将插入其间。另请参阅操作系统不保证返回按算术排序的目录条目。此外,“从数字开始”是什么意思?因为如果你有1_-xx,2_-yy,10_-zz,10_-zz将被插入,如果你只是使用字典排序的话。另请参阅,谢谢你的回答。我的文件是这样开头的:0m3r2r12-。。。。。。。在这种情况下,“键”应该是什么?@简单,这是一种奇怪的格式。按照您的要求应该如何排序?在目录中,我让系统自然地对它们进行排序。例如,0a将出现在0m之前。有意义吗?@那么,从词典学的角度来说?你需要说明两位数的数字吗?如果是,则可以查看
natsort
模块。否则,仅使用
file.sort()
进行字典排序就足够了。@Simplicity您是否检查了
文件
是否正在排序?如果没有,您可能想用输入文件名打开另一个问题,询问如何根据需要对它们进行排序。请注意,这仅对程序中的
文件
列表进行排序,而不是对文件系统中的文件进行排序…谢谢您的回答。我的文件是这样开头的:0m3r2r12-。。。。。。。在这种情况下,“键”应该是什么?@简单,这是一种奇怪的格式。按照您的要求应该如何排序?在目录中,我让系统自然地对它们进行排序。例如,0a将出现在0m之前。有意义吗?@那么,从词典学的角度来说?你需要说明两位数的数字吗?如果是,则可以查看
natsort
模块。否则,仅使用
file.sort()
进行字典排序就足够了。@Simplicity您是否检查了
文件
是否正在排序?如果没有,您可能想用输入文件名打开另一个问题,询问如何根据需要对它们进行排序。请注意,这仅对程序中的
文件
列表进行排序,而不是对文件系统中的文件进行排序。。。
for root, dirs, files in os.walk(TRAIN_DIR):
            files.sort()
            for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):
for root, dirs, files in os.walk(TRAIN_DIR):
    files.sort(key=...)   # your predicate
    ...