Python - 排序Windows等文件路径列表

时间:2015-08-14 07:04:49

标签: python windows sorting filepath

我目前正在努力尝试在与Windows资源管理器相同的庄园中对字符串文件路径列表进行排序。我一直在研究已经发布的几种自然/人类排序算法(特别是在natsort包中的算法),但它们都有同样的问题。

给定一个包含文件的目录" 0.jpg"," 00.jpg"和" 000.jpg",Windows将按照精度降低的顺序对它们进行排序,即:000.jpg,00.jpg。 0.jpg。

我尝试过的所有算法都会按相反的顺序对它们进行排序。我不确定如何获得理想的行为。任何意见,将不胜感激。

1 个答案:

答案 0 :(得分:2)

这应该有用,但它有点笨重:

  • 确定列表中最长的文件名
  • 将所有文件名右键填充到最长名称的长度,并使用不会出现在任何文件名中的高值字符(例如'〜')将其插入在文件扩展名之前
  • 按正常排序
  • 在显示结果之前删除插入的字符

所以

0.jpg, 00.jpg, 000.jpg, 1.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