MacOS Finder的字母排序方式与Python .sort() [重复]不同。

问题描述 投票:0回答:1

我有三个文件。

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中出现的顺序排序?我想知道是否有多种不同的字母顺序的约定。

python finder alphabetical-sort
1个回答
2
投票

这看起来像 自然排序. 数字是按数值排序的,与字符串的其他部分分开。

如果你正在寻找一个库,你可以使用 分类:

>>> import natsort
>>> l = ['x10.txt', 'x30.txt', 'x200.txt']
>>> natsort.natsorted(l)
['x10.txt', 'x30.txt', 'x200.txt']
© www.soinside.com 2019 - 2024. All rights reserved.