使用自定义排序对文件系统上的文件进行排序

时间:2014-03-01 04:29:11

标签: python-3.x

我有一个包含

等文件的目录
file23.txt
file2.txt etc,

我希望输出为

file2.txt
file23.txt 

任何想法?

我试过这个

files = os.listdir(r'D:\Test\thread\xml')

sorted(files)

我想将lambda用于以lambda为键并对其进行排序的排序函数。

1 个答案:

答案 0 :(得分:2)

您是否只是在mydir中查找列表文件并按名称排序?

import os
print(sorted(os.listdir('mydir/')))

如果您按其中的数字排序,则可以尝试

import os
import re

def sorter(filename):
    match = re.search(r'\d+', filename)
    if match:
        return int(match.group())
    return 0

files = sorted(os.listdir('mydir/'), key = lambda fname: sorter(fname))

这会将所有没有数字的文件名放在列表的前面。