根据文件基名对文件夹和子文件夹中的所有文件进行排序

时间:2017-07-13 05:23:34

标签: python file sorting directory

我有一个根文件夹,下面有两个文件夹,现在我想根据文件夹名称对根文件夹下的所有文件进行排序,而不管子文件夹名称如何。

下面是我尝试的代码,但问题是根据文件所在的子文件夹的名称进行排序:

.../verify/AU1/APPLaunch_ftrace_au1.txt,
.../verify/AU1/Mp3BT_ftrace_au1.txt, 
.../verify/AU2/APPLaunch_ftrace_au2.txt,
.../verify/AU2/Mp3BT_ftrace_au2.txt

files_list = []
for root, dirs, files in os.walk(trace_folder, topdown = False):
    files_list.extend(join(root,f) for f in files)
files_list.sort()

我想要的是:

.../verify/AU1/APPLaunch_ftrace_au1.txt,
.../verify/AU2/APPLaunch_ftrace_au2.txt,
.../verify/AU1/Mp3BT_ftrace_au1.txt, 
.../verify/AU2/Mp3BT_ftrace_au2.txt

1 个答案:

答案 0 :(得分:1)

只需向sort添加排序条件,该条件仅考虑文件的基本名称

files_list.sort(key=os.path.basename)

如果你不关心套管,那也是可行的:

files_list.sort(key=lambda x : os.path.basename(x).lower())