首页 > 解决方案 > 排序文件时python的sort()问题

问题描述

我正在尝试制作一个 python 脚本来按顺序重命名文件夹中的文件。

我遍历文件并将它们放在一个列表中,然后用 sort() 进行排序

但不幸的是它似乎不起作用,因为文件名是字符串

我的代码:

files_list = []
files = os.listdir(dir_path) 
for index, file in enumerate(files):
    filename, file_extension = os.path.splitext(file)
    files_list.append(filename + file_extension)

print(files)
files.sort()
print(files)
    

原始数据: ['1.png', '3.jpg' '2.gif' 'myfile_1.png', 'eclipsu.jpg', 'apple.gif']

我想要的是: ['1.png', '2.gif' '3.jph' 'apple.gif', 'eclipsu.jpg', 'myfiles_1.png']

标签: pythonsorting

解决方案


您可以尝试在 sort() 中使用键参数

a = ['1.png', '3.jpg' '2.gif' 'myfile_1.png', 'eclipsu.jpg', 'apple.gif']
a.sort(key= lambda x: x.split('.'))

输出

['1.png', '2.gif', '3.jpg', 'apple.gif', 'eclipsu.jpg', 'myfile_1.png']

推荐阅读