[Python] 파일 목록 얻는 방법 (os.walk, os.listdir, glob)

제이브로·2024년 10월 17일
0

Python

목록 보기
17/17
post-thumbnail

0. 폴더와 파일

폴더와 파일을 생성

C:\test
	└ directory1
    	└ file4.txt
    └ file1.txt
    └ file2.txt
    └ file3.txt

1. os.walk

경로 내에 존재하는 폴더와 파일 리스트 뿐만 아니라, 모든 하위 디렉토리 구조를 검색해서 다 가져온다

1.1 Parameters

  • os.walk(top, topdown=True, onerror=None, followlinks=False)
parameterrequiredtypedefaultdescription
top필수문자열 (string)-탐색할 시작 디렉토리의 경로
topdown선택불리언 (boolean)True탐색 순서를 결정
True : 상위 디렉토리부터 하위 디렉토리로 탐색
False : 하위 디렉토리부터 상위 디렉토리로 탐색
onerror선택함수 (function)None오류 발생 시 호출할 함수
OSError가 발생할 경우 지정된 함수를 호출
followlinks선택불리언 (boolean)False심볼릭 링크를 따라갈지 여부를 결정
True : 심볼릭 링크를 따라가서 링크된 디렉토리의 파일도 탐색
False : 심볼릭 링크는 무시

1.2 Examples

import os

path = 'C:\\test'

for file in os.walk(path):
    print(file)

# output
>>>
('C:\\test', ['directory1'], ['file1.txt', 'file2.txt', 'file3.txt'])
('C:\\test\\directory1', [], ['file4.txt'])

2. os.listdir

경로 내에 존재하는 폴더와 파일 리스트를 검색

2.1 Parameters

os.listdir(path)

  • path의 리스트를 가져온다
  • 단점으로는, path에 해당하는 리스트만 가져와서, 하위 폴더의 리스트의 파일은 가져오지 않는다.
  • ex) file4.txt 는 모른다.

2.2 Examples

import os

path = 'C:\\test'
for file in os.listdir(path):
    print(file)

# output
>>>
directory1
file1.txt
file2.txt
file3.txt

3. glob

경로의 파일 목록을 가져오는 방법

3.1 Parameters

glob.glob()

  • glob 모듈의 glob 함수는 사용자가 제시한 조건에 맞는 파일명을 리스트 형식으로 가져온다.
  • *는 임의 길이의 모든 문자열을 의미
  • ?는 한자리의 문자를 의미
  • recursive=True로 설정하고 **를 사용하면 모든 하위 디렉토리까지 탐색한다. (default=False)

3.2 Examples

3.2.1 Example1

from glob import glob

file_list = glob("C:\\test\\*")
print(file_list)

# output
>>>
['C:\\test\\directory1', 'C:\\test\\file1.txt', 'C:\\test\\file2.txt', 'C:\\test\\file3.txt']

3.2.2 Example2

from glob import glob

file_list = glob("C:\\test\\**", recursive=True)
print(file_list)

# output
>>>
['C:\\test\\', 'C:\\test\\directory1', 'C:\\test\\directory1\\file4.txt', 'C:\\test\\file1.txt', 'C:\\test\\file2.txt', 'C:\\test\\file3.txt']

4. References

  1. toramko blog
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글