list.sort()对列表进行排序并保存已排序的列表,同时sorted(list)返回列表的已排序副本,而不更改原始列表.
list.sort()吗?我担心文件和目录的顺序os.walk().如果我有这些目录,1,10,11,12,2,20,21,22,3,30,31,32,什么是输出列表的顺序?
它是按数值排序的吗?
1 2 3 10 20 30 11 21 31 12 22 32
Run Code Online (Sandbox Code Playgroud)
或者按ASCII值排序,就像给出的那样ls?
1 10 11 12 2 20 21 22 3 30 31 32
Run Code Online (Sandbox Code Playgroud)
另外,我该如何获得特定的排序?
root,dir,file的循环是os.walk(startdir)通过这些步骤工作的吗?
for root in os.walk(startdir)
for dir in root
for files in dir
Run Code Online (Sandbox Code Playgroud)
得到启动目录的根目录:C:\ dir1\dir2\startdir
获取C:\ dir1\dir2\startdir中的文件夹并返回文件夹列表"dirlist"
获取第一个dirlist项目中的文件并返回文件列表"filelist"作为文件列表列表的第一项.
移动到dirlist中的第二个项目并返回此文件夹"filelist2"中的文件列表作为文件列表列表的第二项.等等
移动到foldertree的下一个根,从2开始.
对?或者它首先得到所有的根,然后所有的dirs第二和所有文件第三?
我正在尝试遍历我拥有的文件,并且希望将每两个文件放在一对中,尤其是每两个文件之后实际上是相关的.
我将文件排序在我的目录中,并使用以下内容遍历目录并读取文件对:
for root, dirs, files in os.walk(TRAIN_DIR):
for file1, file2 in itertools.izip_longest(files[::2], files[1::2]):
Run Code Online (Sandbox Code Playgroud)
但是,我以不同的顺序接收file1和file2,而不是像目录中那样紧接着的两个文件.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]):
Run Code Online (Sandbox Code Playgroud)