MacOS Finder 按字母顺序排序不同于 Python .sort()

MacOS Finder sorts alphabetically differently than Python .sort()

我有三个文件:

x10.txt
x30.txt
x200.txt

如果我转到我的 MacOS 查找器并按名称排序,我会得到以下顺序:

x10.txt
x30.txt
x200.txt

我试图让它们在 Python 中以相同的顺序排列。我正在使用以下代码:

mypath = '/path/to/files/'
files = [f for f in listdir(mypath) if isfile(join(mypath, f))]
files.sort()

但是得到这个订单:

x10.txt
x200.txt
x30.txt

Python 中有没有一种方法可以按照这些文件在 Finder 中出现的顺序对这些文件进行排序?我想知道是否有多种不同的字母顺序约定。

这看起来像 natural sort order。数字按数值排序,与字符串的其余部分分开。

如果您要查找图书馆,可以使用 natsort:

>>> import natsort
>>> l = ['x10.txt', 'x30.txt', 'x200.txt']
>>> natsort.natsorted(l)
['x10.txt', 'x30.txt', 'x200.txt']