때때로 Python에서 파일 작업을 하는 동안 디렉터리의 모든 파일을 가져오는 방법에 문제가 발생합니다. 이번 글에서는 다양한 방법을 다루겠습니다. 디렉토리의 모든 파일 이름을 나열하는 방법 파이썬에서.
파일 작업을 수행하는 것은 프로그래머에게 꼭 필요한 기술입니다. Python을 사용하여 파일 작업을 배우면 파일 관리, 프로그램과 파일 통합, 실제 프로그램 구축 등에 도움이 됩니다. 특정 디렉터리에 있는 모든 파일을 나열하는 가장 기본적인 개념을 다룹니다.
이 튜토리얼에서는 디렉토리에 파일 이름과 세부 정보를 나열하는 방법에 대해 두 개의 모듈과 해당 기능을 다룰 것입니다.
Python에서 디렉토리란 무엇입니까?
때로는 폴더라고도 하는 디렉터리는 파일이나 더 많은 폴더를 저장하고 찾기 위한 컴퓨터 파일 시스템의 단위 조직 구조입니다. Python은 이제 디렉터리 내용을 나열하는 여러 API를 지원합니다. 예를 들어 Path.iterdir, os.scandir, os.walk, Path.rglob 또는 os.listdir 함수를 사용할 수 있습니다.
사용 중인 디렉토리: GFG
Python에서 디렉터리의 파일을 나열하는 방법
디렉토리의 모든 파일을 나열하는 방법에는 여러 가지가 있습니다. 이 기사에서는 디렉터리의 파일 목록을 가져오는 아래 모듈과 해당 기능에 대해 설명합니다. 디렉토리의 파일 목록을 확인하는 총 5가지 방법을 예제와 함께 다루겠습니다.
- 사용 OS 모듈
- 사용 글로브 모듈
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의 파일 처리