디렉토리의 모든 파일을 얻는 방법

Jinku Hu 2023년1월30일
  1. os.listdir 은 파이썬에서 디렉토리의 모든 파일을 가져옵니다
  2. 파이썬에서 디렉토리의 모든 파일을 가져 오는 os.walk
  3. glob.glob 는 파이썬에서 디렉토리의 모든 파일을 가져옵니다
디렉토리의 모든 파일을 얻는 방법

Python 함수 os.listdir,os.walkglob.glob 를 사용하여 Python 에서 디렉토리의 모든 파일을 나열하는 방법이 3 개 이상있을 수 있습니다.

아래는이 튜토리얼의 추정입니다.

  1. 파이썬 버전-파이썬 3
  2. 경로 이름은 dirPath 이며 시스템에 존재하므로 디렉토리의 존재를 확인할 필요가 없습니다.

os.listdir 은 파이썬에서 디렉토리의 모든 파일을 가져옵니다

os.listdir 은 디렉토리의 모든 파일과 폴더를 나열하므로 결과에서 파일을 필터링하려면 추가 코드가 필요합니다.

import os

dirPath = r"C:\git\DelftStack\content"
result = [f for f in os.listdir(dirPath) if os.path.isfile(os.path.join(dirPath, f))]
print(result)

os.listdirdirPath 를 참조하여 파일 또는 폴더의 상대 경로 만 반환하며,os.path.isfile 함수는 파일인지 여부를 확인하기 위해 전체 경로가 필요하므로 사용해야합니다. os.path.joindirPathos.listdir 의 결과를 결합하여 파일이나 경로의 전체 경로를 얻습니다.

파이썬에서 디렉토리의 모든 파일을 가져 오는 os.walk

os.walk 는 트리를 하향식으로 (기본적으로) 또는 상향식으로 이동하여 지정된 디렉토리에 파일 이름을 생성합니다. 트리의 디렉토리 (* top * 자체 포함)로 이동할 때마다 3 개의 튜플 (dirpath,dirname,filenames)이 생성됩니다.

모든 파일은os.walk의 첫 번째 수확량을 위해 튜플에 포함되므로 Pythonic 방식은 다음과 같습니다.

import os

dirPath = r"C:\git\DelftStack\content"
result = next(os.walk(dirPath))[2]
print(result)

glob.glob 는 파이썬에서 디렉토리의 모든 파일을 가져옵니다

glob 모듈은 Unix 쉘에서 사용 된 규칙에 따라 주어진 특정 패턴과 일치하는 모든 경로 이름을 찾습니다. glob.glob 는 주어진 경로 이름 패턴과 일치하는 경로 이름 목록을 반환합니다. 파일 경로는*.*패턴을 가지고 있는데, 이것은 입력 인수로 glob.glob 에 전달됩니다.

import glob

dirPathPattern = r"C:\git\DelftStack\content\*.*"
result = glog.glob(dirPathPattern)
print(result)

glob.globC:\git\DelftStack\content\about.rst 와 같이 일치하는 파일의 전체 경로를 반환합니다.

경고

여기에 표시된 glob.glob메소드의 결과는 경로 이름이 패턴과 일치하는지 여부 만 확인하지만 파일 또는 디렉토리인지 확인하지 않기 때문에 파일 전용임을 보장 할 수 없습니다.

예를 들어, 디렉토리에 test.test 와 같은 이름 패턴이 있으면이 디렉토리도 결과에 포함됩니다.

출력에 파일 만 포함되어 있는지 확인해야하는 경우 os.path.isfile 함수를 사용하여 확인해야합니다.

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - Python File

관련 문장 - Python Dictionary