Python:排序文件列表

时间:2017-09-20 21:26:06

标签: python list sorting path

我使用os.path从目录生成文件列表。我正在通过Tkinter生成一个照片库。然而,排序是完全随机的。我没有看到从目录中显示的照片顺序背后的更大逻辑。当我打印列表时,它也是随机的。

如何按文件名或修改日期更改此代码段的列表顺序?

image_list = [os.path.join("/home/pi/fotos/previews",fn) for fn in next(os.walk("/home/pi/fotos/previews"))[2]]

1 个答案:

答案 0 :(得分:1)

Soritng的名字

您可以使用已排序的内置函数。

示例:

image_list = [os.path.join("/home/pi/fotos/previews",fn) for fn in next(os.walk("/home/pi/fotos/previews"))[2]]
sorted_list = sorted(image_list, key=str.swapcase)

按上次修改日期排序

您可以使用os.stat(filename).st_mtime查看上次修改文件的时间。

示例:

folder_path = "/home/pi/fotos/previews"
unsorted_list = [file_name for file_name in next(os.walk(folder_path))[2]]
sorted_list = unsorted_list.sort(key=lambda file_name: os.stat(os.path.join(folder_path,file_name)).st_mtime)