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']
我有三个文件:
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']