首先,我发布这个,因为当我在寻找下面的问题的解决方案,我找不到一个在stackoverflow。所以,我希望在这里添加一点知识库。
我需要处理一个目录中的一些文件,并且需要以数字方式对文件进行排序。我发现一些关于排序的例子 – 特别是使用lambda模式 – 在wiki.python.org,我把它放在一起:
#!env/python
import re
tiffFiles = """ayurveda_1.tif
ayurveda_11.tif
ayurveda_13.tif
ayurveda_2.tif
ayurveda_20.tif
ayurveda_22.tif""".split('\n')
numPattern = re.compile('_(\d{1,2})\.', re.IGNORECASE)
tiffFiles.sort(cmp, key=lambda tFile:
int(numPattern.search(tFile).group(1)))
print tiffFiles
我还是很喜欢Python,并且想问社区是否有任何改进可以做到这一点:缩短代码(删除lambda),性能,样式/可读性?
谢谢,
扎卡里