일부 파일에 확장명이 없더라도 (그리고 자체적으로 문서화하는 것이더라도) 작동하는 이온은 sorted
의 key
기능의 일부로 os.path.splitext
을 사용하십시오. 어떤 파일 확장자가없는 경우, 다른 모든 확장하기 전에 정렬, 빈 문자열, ''
로 확장을 처리합니다 :
>>> l = ['b.py', 'a.c', 'a.py', 'bar.txt', 'foo.txt', 'x.c', 'foo']
>>> sorted(l, key=lambda x: os.path.splitext(x)[1])
['foo', 'a.c', 'x.c', 'b.py', 'a.py', 'bar.txt', 'foo.txt']
는 입력에 처음 등장하기 때문에 b.py
는, 여기 a.py
먼저 정렬합니다 및 파일 확장자에 대해서만 정렬 된 정렬. 확장명을 기준으로 정렬하고 전체 이름을 지정하려면 확장명이 아닌 확장명을 차례로 입력하고 ([::-1]
을 사용하여 반환 된 값 os.path.splitext
의 반환 값이 쉽게 반홖됩니다.) a.py
앞에옵니다. b.py
관계없이 입력 등장 곳의 :
>>> sorted(l, key=lambda x: os.path.splitext(x)[::-1])
['foo', 'a.c', 'x.c', 'a.py', 'b.py', 'bar.txt', 'foo.txt']
그래서 file.ext를 반환 내선에서 시작 종류 및 구문 분석하고 파일 이름과 확장자를 반전 람다 기능을 제공에서'key' 매개 변수 –
보기에 읽어 . 파일에서 람다. John Coleman의 항목과 함께 작동합니다. 'l '= ['x.c ','a.py ','b.py ','bar.txt ','foo.txt ','a.c ']'에 대한 – LhasaDad