字母数字值排序

时间:2019-04-03 04:25:18

标签: python sorting

我需要根据文件名中的数字对图像进行排序。

例如: [1.jpg,10.jpg,3.jpg ...]

我厌倦了natsort库和sorted函数,两者给出的结果相同

import glob 
from natsort import natsorted
images =[]
for img in glob.glob('E:/train/image/*.jpg'):
    images.append(img)
    natsorted(images)

输出: [ 1、10、11、12、2、22、3 ]

,但必须是: [ 1、2、3、10、11、12、22 ]

2 个答案:

答案 0 :(得分:0)

我想您需要执行以下操作:

import glob 
from natsort import natsorted
images = natsorted(glob.glob('E:/train/image/*.jpg'))

答案 1 :(得分:0)

natsorted不是就地排序。它返回一个新的排序列表,因此您必须将其分配给变量。
这应该起作用:

import glob 
from natsort import natsorted
images =[]
for img in glob.glob('E:/train/image/*.jpg'):
    images.append(img)
images = natsorted(images)