2014-03-01 41 views
0

我有一个包含文件的目录一样排序文件排序

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)) 

这将会把所有文件名与他们没有数字在列表的前面。