os 모듈의 scandir 메서드

scandir 메서드는 폴더에 있는 파일과 하위 폴더를 순회합니다. 메서드의 매개변수에 폴더 경로를 지정합니다. 메서드는 os.DirEntry 객체를 반환합니다.

구문

pythonimport os

os.scandir(디렉터리 경로)

예제

우리 디렉터리의 구조를 알아봅시다:

pythonimport os

print(os.scandir('dir'))

코드를 실행한 결과로 os.DirEntry 객체를 얻습니다:

python<nt.ScandirIterator object at 0x000001478707FF00>

예제

이제 얻은 객체를 for 루프로 순회해 보겠습니다. 시스템 리소스를 해제하기 위해, 루프가 끝난 후에는 scandir 메서드를 사용하여 순회를 닫아야 합니다:

pythonimport os

for file in os.scandir('dir'):
  print(file)
  
os.scandir('dir').close()

수행된 코드 결과:

python<DirEntry 'dir1'>
<DirEntry 'file1.txt'>
<DirEntry 'file2.txt'>

예제

또한 얻은 객체에 name 속성을 적용하여 파일 이름만 출력할 수 있습니다:

pythonimport os

for file in os.scandir('dir'):
  print(file.name)
  
os.scandir('dir').close()

수행된 코드 결과:

pythondir1
file1.txt
file2.txt

함께 보기

  • DirEntry 객체는 os 모듈의,
    순회 가능한 파일과 하위 폴더를 포함합니다
  • getcwd 메서드는 os 모듈의,
    현재 작업 디렉터리를 반환합니다
  • makedirs 메서드는 os 모듈의,
    디렉터리를 생성합니다
  • rmtree 메서드는 shutil 모듈의,
    폴더를 재귀적으로 삭제합니다
  • copytree 메서드는 shutil 모듈의,
    폴더를 재귀적으로 복사합니다
  • path.join 메서드는 os 모듈의,
    경로를 결합합니다