下面是一个示例代码,展示了如何按照多个排序键对文件列表进行排序:
import os
def sort_files(file_list, sort_keys):
sorted_files = sorted(file_list, key=lambda x: [getattr(os.stat(x), key) for key in sort_keys])
return sorted_files
# 示例调用
file_list = ['file1.txt', 'file2.txt', 'file3.txt']
sort_keys = ['st_size', 'st_mtime'] # 按文件大小和修改时间进行排序
sorted_files = sort_files(file_list, sort_keys)
print(sorted_files)
在上面的示例代码中,sort_files
函数接受两个参数:file_list
是文件列表,sort_keys
是一个包含排序键的列表。在示例中,我们使用了文件的大小和修改时间作为排序键。
sort_files
函数内部使用了 sorted
函数来对 file_list
进行排序。在 key
参数中,我们使用了一个 lambda 函数来获取每个文件的对应排序键的值。通过 getattr
函数获取文件的相应属性,如文件大小和修改时间。
最后,我们通过调用 sort_files
函数,并将结果打印出来得到了按照多个排序键对文件列表进行排序的结果。