Python-对文件路径(如Windows)进行排序
我目前正在尝试在Windows资源管理器中对同一个区域中的字符串文件路径列表进行排序。我一直在研究一些已经发布的自然/人工排序算法(尤其是natsort包中的算法),但它们都有相同的问题 给定一个包含文件“0.jpg”、“00.jpg”和“000.jpg”的目录,Windows将按精度递减的顺序对它们进行排序,即:000.jpg,00.jpg。0.jpgPython-对文件路径(如Windows)进行排序,python,windows,sorting,filepath,Python,Windows,Sorting,Filepath,我目前正在尝试在Windows资源管理器中对同一个区域中的字符串文件路径列表进行排序。我一直在研究一些已经发布的自然/人工排序算法(尤其是natsort包中的算法),但它们都有相同的问题 给定一个包含文件“0.jpg”、“00.jpg”和“000.jpg”的目录,Windows将按精度递减的顺序对它们进行排序,即:000.jpg,00.jpg。0.jpg 我尝试过的所有算法都将按相反的顺序对它们进行排序。我不知道如何获得想要的行为。如有任何建议,将不胜感激 这应该行得通,但有点笨重: 确定列表
我尝试过的所有算法都将按相反的顺序对它们进行排序。我不知道如何获得想要的行为。如有任何建议,将不胜感激 这应该行得通,但有点笨重:
- 确定列表中最长的文件名
- 将所有文件名用鼠标右键填充到最长名称的长度,并在文件扩展名之前插入一个高值字符,该字符不出现在任何文件名中(例如“~”)
- 正常排序
- 在显示结果之前删除插入的字符
0~~.jpg, 00~.jpg, 000.jpg, 1~~.jpg
排序时:
000.jpg, 00~.jpg, 0~~.jpg, 1~~.jpg
最后:
000.jpg, 00.jpg, 0.jpg, 1.jpg
排序=>反转?Windows将以您选择的任何方式进行排序,这取决于该列是按升序还是降序排序……我最终这样做了,但我使用了chr(65535),而不是“~”。实际上,请将其删除。我发现了另一个使用这种方法引入的边缘情况。
000.jpg, 00.jpg, 0.jpg, 1.jpg