Python을 사용하여 디렉터리의 파일을 반복하는 방법은 무엇입니까?

Python을 사용하여 디렉터리의 파일을 반복하는 방법은 무엇입니까?

예배 규칙서 폴더라고도 하는 것은 파일이나 더 많은 폴더를 저장하고 찾기 위한 시스템 파일 시스템의 단위 조직 구조입니다. Python은 스크립팅 언어로서 다양한 방법을 제공합니다. 디렉토리의 파일을 반복합니다.

다음은 Python을 사용하여 디렉터리의 파일을 반복할 수 있는 다양한 접근 방식입니다.

방법 1: os.listdir()

이 함수는 다음 목록을 반환합니다. 파일 그리고 하위 디렉터리 주어진 디렉토리에 존재합니다. 목록을 필터링하여 다음을 사용하는 파일만 가져올 수 있습니다. os.path.isfile() 기능:

예:

파이썬3




# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> os.listdir(directory):> > f> => os.path.join(directory, filename)> > # checking if it is a file> > if> os.path.isfile(f):> > print> (f)>

산출:

방법 2: os.scandir()

이 메소드는 반복자를 얻는 데 사용됩니다. os.DirEntry 지정된 경로에 지정된 디렉터리의 항목에 해당하는 개체입니다.

예:

파이썬3




# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> os.scandir(directory):> > if> filename.is_file():> > print> (filename.path)>

산출:

방법 3: pathlib 모듈

다음을 사용하여 디렉터리의 파일을 반복할 수 있습니다. 경로.glob() 주어진 디렉토리에서 지정된 패턴을 glob하고 일치하는 파일을 생성하는 함수입니다. 경로.glob('*') 주어진 디렉토리의 모든 파일을 생성하십시오.

예:

파이썬3




# import required module> from> pathlib> import> Path> # assign directory> directory> => 'files'> # iterate over files in> # that directory> files> => Path(directory).glob(> '*'> )> for> file> in> files:> > print> (> file> )>

산출:

방법 4: os.walk()

3-튜플을 생성하므로 이 방법을 사용하여 하위 디렉터리를 검색할 수도 있습니다. (디렉토리 경로, 디렉토리 이름, 파일 이름) .

  • 뿌리 : 지정한 디렉토리에서만 디렉토리를 인쇄합니다.
  • 말하다 : 루트의 하위 디렉터리를 인쇄합니다.
  • 파일 : 루트 및 디렉터리의 모든 파일을 인쇄합니다.

파이썬3




# import required module> import> os> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> root, dirs, files> in> os.walk(directory):> > for> filename> in> files:> > print> (os.path.join(root, filename))>

산출:

방법 5: 글로브 모듈

그만큼 glob.iglob() 함수는 주어진 패턴과 일치하는 경로 이름 목록에 대한 반복자를 반환합니다.

예:

파이썬3




# import required module> import> glob> # assign directory> directory> => 'files'> # iterate over files in> # that directory> for> filename> in> glob.iglob(f> '{directory}/*'> ):> > print> (filename)>

산출: