我使用os.path从目录生成文件列表。我正在通过Tkinter生成一个照片库。然而,排序是完全随机的。我没有看到从目录中显示的照片顺序背后的更大逻辑。当我打印列表时,它也是随机的。
如何按文件名或修改日期更改此代码段的列表顺序?
image_list = [os.path.join("/home/pi/fotos/previews",fn) for fn in next(os.walk("/home/pi/fotos/previews"))[2]]
答案 0 :(得分:1)
您可以使用已排序的内置函数。
示例:
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)