自定义目录内容排序

时间:2010-08-26 15:31:08

标签: python sorting

我有许多目录,其中包含类似于以下示例的文件:

test
setup
adder
hello
_CONFIG
TEST2

这些目录中带有前缀_的文件代表重要的配置文件。我的目的是在列出目录时首先显示这些文件,即我希望提供:

_CONFIG
TEST2
adder
hello
setup
test

但是,我正在使用

for element in sorted(os.listdir(path)):
    print(element)

这提供了一个列表,其中以_前缀文件的上方列出了以大写字母开头的文件:

TEST2
_CONFIG
adder
hello
setup
test

除此之外还有没有按照第一个字符过滤每个文件并单独打印,因为这看起来有点矫枉过正。

谢谢

汤姆

2 个答案:

答案 0 :(得分:2)

sorted( ..., key = lambda s: ( not s.startswith( "_" ), s ) )

答案 1 :(得分:0)

for element in sorted(os.listdir(path), key=lambda x:x.replace('_', ' ')):
    print(element)