Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 이름순으로 정렬된 디렉터리 목록을 얻는 방법

파이썬에서 디렉터리 항목을 이름 기준으로 정렬하기

파이썬에서 특정 디렉터리의 내용을 이름순으로 정렬된 목록으로 가져오려면, 먼저 os.listdir 함수를 호출하여 디렉터리의 파일과 폴더 목록을 얻은 뒤, sorted 함수를 사용해 이 목록을 정렬하면 됩니다.

대소문자가 섞여 있어도 일관되게 정렬되도록 하려면, 정렬 전에 각 항목을 모두 소문자로 변환하는 것이 좋습니다.

예제 코드

>>> import os
>>> list_dir = os.listdir('.')
>>> list_dir = [f.lower() for f in list_dir]   # 모든 항목을 소문자로 변환
>>> sorted(list_dir)
['dlls', 'doc', 'etc', 'include', 'lib', 'libs', 'license.txt', 'news.txt', 'python.exe', 'pythonw.exe', 'readme.txt', 'scripts', 'share', 'tcl', 'tools', 'w9xpopen.exe']

위 예제에서 os.listdir('.')는 현재 작업 디렉터리의 모든 파일과 폴더 이름을 리스트로 반환합니다. 이후 리스트 컴프리헨션(list comprehension)을 사용해 각 이름을 소문자로 변환한 후, sorted() 함수에 전달하면 알파벳 순서로 정렬된 새로운 리스트를 얻을 수 있습니다.

만약 대소문자 구분 없이 원본 이름 그대로 결과를 유지하고 싶다면, sorted(list_dir, key=str.lower)처럼 key 매개변수를 활용하는 방법도 있습니다. 이렇게 하면 원래 이름은 그대로 보존되면서 정렬만 소문자 기준으로 수행됩니다.