logo

Python – 디렉터리의 파일 나열

때때로 Python에서 파일 작업을 하는 동안 디렉터리의 모든 파일을 가져오는 방법에 문제가 발생합니다. 이번 글에서는 다양한 방법을 다루겠습니다. 디렉토리의 모든 파일 이름을 나열하는 방법 파이썬에서.

파일 작업을 수행하는 것은 프로그래머에게 꼭 필요한 기술입니다. Python을 사용하여 파일 작업을 배우면 파일 관리, 프로그램과 파일 통합, 실제 프로그램 구축 등에 도움이 됩니다. 특정 디렉터리에 있는 모든 파일을 나열하는 가장 기본적인 개념을 다룹니다.



이 튜토리얼에서는 디렉토리에 파일 이름과 세부 정보를 나열하는 방법에 대해 두 개의 모듈과 해당 기능을 다룰 것입니다.

Python에서 디렉토리란 무엇입니까?

때로는 폴더라고도 하는 디렉터리는 파일이나 더 많은 폴더를 저장하고 찾기 위한 컴퓨터 파일 시스템의 단위 조직 구조입니다. Python은 이제 디렉터리 내용을 나열하는 여러 API를 지원합니다. 예를 들어 Path.iterdir, os.scandir, os.walk, Path.rglob 또는 os.listdir 함수를 사용할 수 있습니다.

사용 중인 디렉토리: GFG



디렉토리의 파일

Python에서 디렉터리의 파일을 나열하는 방법

디렉토리의 모든 파일을 나열하는 방법에는 여러 가지가 있습니다. 이 기사에서는 디렉터리의 파일 목록을 가져오는 아래 모듈과 해당 기능에 대해 설명합니다. 디렉토리의 파일 목록을 확인하는 총 5가지 방법을 예제와 함께 다루겠습니다.

  1. 사용 OS 모듈
  2. 사용 글로브 모듈

Python에서 Os 모듈을 사용하여 디렉터리의 파일 나열

우리는 이 3가지 방법을 사용할 수 있습니다. OS 모듈 , 디렉토리의 파일 목록을 가져옵니다.



  • os.listdir() 방법
  • os.walk() 방법
  • os.scandir() 방법

os.listdir() 메소드를 사용하여 파일 목록 가져오기

os.listdir() 메소드는 지정된 디렉토리에 있는 모든 파일 및 디렉토리의 목록을 가져옵니다. 기본적으로 현재 디렉터리입니다. 첫 번째 폴더 수준을 넘어서면 os.listdir()은 파일이나 폴더를 반환하지 않습니다.

통사론 : os.listdir(경로)

매개변수 :

  • : 디렉토리 경로

반환 유형 : 지정된 경로에 있는 모든 파일 및 디렉터리 목록을 반환합니다.

예시 1: 디렉터리의 모든 파일 목록 가져오기

이 예에서는 운영 체제와 상호 작용하기 위해 os 모듈을 가져옵니다. listdir 함수는 지정된 경로(C://Users//Vanshi//Desktop//gfg)에 있는 모든 파일 및 디렉터리 목록을 얻는 데 사용됩니다. 그런 다음 결과가 인쇄되어 지정된 위치에 있는 파일 및 디렉터리의 이름이 표시됩니다.

파이썬3




# import OS module> import> os> # Get the list of all files and directories> path>=> ' C://Users//Vanshi//Desktop//gfg '> dir_list>=> os.listdir(path)> print>(>'Files and directories in ''>, path,>'' :'>)> # prints all files> print>(dir_list)>

링크드리스트

>

>

산출:

예 2: 모든 파일을 가져오고 폴더는 가져오지 않음

이 예에서 Python 프로그램은 사용자에게 폴더 경로를 묻는 메시지를 표시하고 디렉터리 상호 작용을 위해 os 모듈을 활용하고 가져온 목록에서 파일을 필터링하여 해당 디렉터리의 파일을 나열하고 인쇄합니다.

파이썬3




import> os> print>(>'Python Program to print list the files in a directory.'>)> Direc>=> input>(r>'Enter the path of the folder: '>)> print>(f>'Files in the directory: {Direc}'>)> files>=> os.listdir(Direc)> # Filtering only the files.> files>=> [f>for> f>in> files>if> os.path.isfile(Direc>+>'/'>+>f)]> print>(>*>files, sep>=>' '>)>

>

>

예 3: 디렉터리에서 '.txt' 파일만 가져오기

이 예에서 Python 스크립트는 os 모듈을 활용하여 현재 디렉터리의 파일을 반복합니다. .txt로 끝나는 파일 이름만 선택적으로 인쇄하여 디렉터리에 있는 텍스트 파일을 효과적으로 나열합니다.

파이썬3


문자열을 문자로 변환



# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

산출:

자바 형식 문자열

os.walk() 메소드를 사용하여 디렉토리 트리의 파일에 액세스

OS.워크() 디렉토리 트리에 파일 이름을 생성합니다. 이 함수는 트리 구조의 파일 목록을 반환합니다. 이 메서드는 트리의 모든 디렉터리를 반복합니다.

통사론: os.walk(top, topdown, onerror, 팔로우링크 )

매개변수:

  • 맨 위: 이는 구성 요소 파일 및 폴더의 이름을 검색하려는 최상위 디렉터리입니다.
  • 위에서 아래로: True로 설정하면 디렉터리를 위에서 아래로 검색하도록 지정합니다. 이 매개변수가 False이면 디렉터리가 위에서 아래로 검사됩니다.
  • 오류 시: 오류가 발생하면 오류 처리기를 제공합니다.
  • 팔로우링크 : True로 설정하면 시스템 링크가 참조하는 폴더를 방문합니다.

반품: 디렉터리와 해당 하위 디렉터리 내의 모든 파일과 폴더의 이름을 반환합니다.

예: 디렉터리에서 '.txt' 파일만 가져오기

이 예에서 Python 스크립트는 os 모듈을 사용하여 지정된 디렉터리(C://Users//Vanshi//Desktop//gfg) 및 해당 하위 디렉터리에 있는 파일을 탐색합니다. .txt 확장자를 가진 파일 이름을 식별하고 인쇄하며 목록 변수를 원하는 텍스트 파일로 채웁니다.

파이썬3




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,>file>)>in> os.walk(path):> >for> f>in> file>:> >if> '.txt'> in> f:> >print>(f)>

>

>

산출:

os.scandir() 메소드를 사용하여 디렉토리의 파일 나열

os.scandir() os.listdir() 함수의 효율적인 버전입니다. 나중에 Python에서 출시되었으며 Python 3.5 이상에서 지원됩니다.

통사론: os.scandir(경로)

매개변수:

  • 길- 디렉터리의 경로입니다.

반환 유형: os.DirEntry 객체의 반복자를 반환합니다.

예: 디렉터리의 모든 파일과 디렉터리를 나열합니다.

이 예에서 Python 스크립트는 os 모듈을 활용하여 지정된 경로(C://Users//Vanshi//Desktop//gfg)에 있는 파일 및 디렉터리를 나열합니다. os.scandir()을 사용하여 디렉토리의 항목을 나타내는 os.DirEntry 객체의 반복자를 얻습니다.

파이썬3


문자를 문자열로 자바



# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj>=> os.scandir()> # List all files and directories in the specified path> print>(>'Files and Directories in '% s':'> %> path)> for> entry>in> obj:> >if> entry.is_dir()>or> entry.is_file():> >print>(entry.name)>

>

>

산출:

Python에서 glob 모듈을 사용하여 디렉터리의 파일 나열

그만큼 글로브 기준 치수 지정된 패턴과 일치하는 파일/경로 이름을 검색합니다. 다음은 glob 모듈을 사용하여 디렉터리의 파일을 나열할 수 있는 방법입니다:

  • 글로브() 방법
  • 이글로브() 방법

glob() 메소드를 사용하여 디렉토리의 모든 파일 가져오기

와 함께 글로브 , 와일드카드(*, ?, [범위])를 사용할 수 있습니다. 경로 검색을 더욱 간단하고 편리하게 만듭니다.

통사론: glob.glob(경로 이름, *, recursive=False)

매개변수:

  • 경로명 : 일치시킬 디렉터리 또는 패턴의 경로입니다.
  • 재귀적 (선택 사항): 부울 매개변수(기본값은 거짓 ) 검색이 재귀적이어야 하는지, 즉 하위 디렉터리를 포함해야 하는지 여부를 나타냅니다.

보고:

  • 일치하는 파일 경로 목록

예: glob() 메서드를 사용한 Python 파일 일치 및 인쇄

파이썬3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print>(>' Named with wildcard *:'>)> for> files>in> glob.glob(path>+> '*'>):> >print>(files)> # Using '?' pattern> print>(>' Named with wildcard ?:'>)> for> files>in> glob.glob(path>+> '?.txt'>):> >print>(files)> # Using [0-9] pattern> print>(>' Named with wildcard ranges:'>)> for> files>in> glob.glob(path>+> '/*[0-9].*'>):> >print>(files)>

>

>

산출:

iglob() 메소드를 사용하여 디렉토리의 파일 나열

이글로브() recursive 매개변수가 True로 설정된 경우 메소드를 사용하여 파일 이름을 반복적으로 인쇄할 수 있습니다. 이는 glob() 메소드보다 더 효율적이므로 큰 디렉토리에 사용됩니다.

rr 알고리즘

통사론: glob.iglob(경로 이름, *, recursive=False)

매개변수:

  • 경로명 = 디렉터리의 경로입니다.
  • 재귀적(선택 사항)= 부울 매개변수(기본값은 거짓 ) 검색이 재귀적이어야 하는지, 즉 하위 디렉터리를 포함해야 하는지 여부를 나타냅니다.

보고: 일치하는 파일 경로의 반복자

예: 디렉토리에서 지정된 패턴과 일치하는 경로를 인쇄합니다.

이 예에서 Python 스크립트는 glob 모듈을 활용하여 지정된 패턴(C:UsersVanshiDesktopgfg***.txt)과 일치하는 경로를 찾아 인쇄합니다. glob.iglob()을 사용하여 반복자를 반환한 다음 지정된 디렉터리와 해당 하위 디렉터리에 있는 모든 텍스트 파일의 경로를 인쇄하는 데 사용됩니다.

파이썬3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print>(>' Using glob.iglob()'>)> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive>=>True>):> >print>(>file>)>

>

>

산출:

디렉터리에 있는 파일 및 디렉터리의 세부 정보를 가져오는 데 사용할 수 있는 5가지 방법은 다음과 같습니다. Python은 디렉터리에 있는 파일을 파악하는 데 사용할 수 있는 여러 내장 메서드를 제공합니다. 이 튜토리얼에서는 os 모듈과 glob 모듈을 사용하여 파일 목록을 얻는 방법을 이해하기 위한 예제와 함께 쉬운 방법을 보여주었습니다.

비슷한 내용:

  • 확장자가 있는 디렉터리의 파일 나열
  • Python을 사용하여 디렉터리에 있는 특정 유형의 모든 파일 나열
  • Python에서 디렉터리 및 파일 나열
  • 크기가 있는 디렉터리의 파일 목록 가져오기
  • Python의 파일 처리