콘텐츠로 건너뛰기

파이썬에서 디렉터리 내 파일 목록 가져오기

[

Python에서 디렉토리의 파일 목록 가져오기

파일과 관련된 작업을 할 때 대부분의 경우 디렉토리의 모든 파일 및 폴더 목록을 가져오는 것이 첫 번째 단계입니다. 그러나 이 작업을 수행하는 다양한 방법을 발견하게 될 것입니다.

한 가지 작업을 수행하는 다양한 방법이 있는 경우 대부분은 문제에 일반적으로 적용되는 해결책이 따로 없다는 것을 나타냅니다. 아마도 각각의 해결책은 장단점을 가지고 있을 것입니다. 이것은 파이썬에서 디렉토리의 내용물 목록을 가져오는 경우에도 마찬가지입니다.

이 튜토리얼에서는 디렉토리의 항목을 나열하기 위해 가장 일반적으로 사용되는 방법인 pathlib 모듈에 초점을 맞출 것입니다. 또한 몇 가지 대체 도구에 대해 약간 배우게 될 것입니다.

일찍부터 문자열로 경로를 처리하는 것은 처음에는 괜찮아 보일 수 있지만, 여러 운영 체제를 하나로 섞으면 상황이 더 복잡해집니다. 또한 파일 경로와 상관없는 문자열 조작과 관련된 코드들이 있게 됩니다. 이것들은 빠르게 알아보기 어려울 수 있습니다.

따라서 문자열로 경로를 처리하는 것이 불가능하다는 것은 아닙니다 - 어쨌든 개발자들은 오랫동안 pathlib 없이도 잘 해냈습니다! pathlib 모듈은 많은 까다로운 작업을 처리해주고 코드의 주요 로직에 집중할 수 있도록 해줍니다.

모든 것은 Path 객체를 생성하는 것으로 시작합니다. 이 객체는 운영 체제(Operating System)에 따라 다를 수 있습니다. Windows에서는 WindowsPath 객체를 반환하고, Linux 및 macOS에서는 PosixPath 객체를 반환합니다:

  • Windows
  • Linux + macOS
import pathlib
desktop = pathlib.Path("C:/Users/RealPython/Desktop")
desktop
import pathlib
desktop = pathlib.Path("/home/RealPython/Desktop")
desktop

이러한 운영 체제에 대응하는 객체를 사용하면 다양한 메서드와 속성을 활용할 수 있습니다. 일반적으로는 iterdir() 메서드를 사용하여 디렉토리의 아이템을 반복하거나, glob() 메서드를 사용하여 유연한 패턴으로 파일을 찾을 수 있습니다.

아래 코드에서는 iterdir() 메서드를 사용하여 디렉토리의 파일 및 폴더의 이름을 출력하는 것을 보여줍니다:

for item in desktop.iterdir():
print(item.name)

이 코드를 실행하면 주어진 디렉토리의 모든 파일과 폴더의 이름이 출력됩니다.

유연한 패턴으로 파일을 찾는다면 glob() 메서드를 사용할 수도 있습니다. 이를 사용하여 특정 확장자의 파일만 찾을 수 있습니다. 예를 들어, .txt 확장자를 가진 파일들만 찾고자 한다면 다음과 같이 작성할 수 있습니다:

for txt_file in desktop.glob("*.txt"):
print(txt_file.name)

위의 코드를 실행하면 확장자가 .txt로 끝나는 모든 파일의 이름이 출력됩니다.

이러한 메서드들은 파일 및 폴더의 이름 뿐만 아니라 다양한 정보나 속성을 제공합니다. 예를 들어, is_file() 메서드를 사용하여 파일인지 아닌지 확인하거나, name 속성을 사용하여 파일 또는 폴더의 이름을 가져올 수 있습니다.

이 방법들은 Python에서 디렉토리의 파일 목록을 얻는 일반적인 기술입니다. 필요에 따라 추가적인 작업을 수행하고 싶다면, 공식 문서를 참조하여 pathlib 모듈의 다양한 기능을 확인해보세요.