폴더와 파일을 생성
C:\test
└ directory1
└ file4.txt
└ file1.txt
└ file2.txt
└ file3.txt
경로 내에 존재하는 폴더와 파일 리스트 뿐만 아니라, 모든 하위 디렉토리 구조를 검색해서 다 가져온다
os.walk(top, topdown=True, onerror=None, followlinks=False)
parameter | required | type | default | description |
---|---|---|---|---|
top | 필수 | 문자열 (string) | - | 탐색할 시작 디렉토리의 경로 |
topdown | 선택 | 불리언 (boolean) | True | 탐색 순서를 결정 |
True : 상위 디렉토리부터 하위 디렉토리로 탐색 | ||||
False : 하위 디렉토리부터 상위 디렉토리로 탐색 | ||||
onerror | 선택 | 함수 (function) | None | 오류 발생 시 호출할 함수 |
OSError 가 발생할 경우 지정된 함수를 호출 | ||||
followlinks | 선택 | 불리언 (boolean) | False | 심볼릭 링크를 따라갈지 여부를 결정 |
True : 심볼릭 링크를 따라가서 링크된 디렉토리의 파일도 탐색 | ||||
False : 심볼릭 링크는 무시 |
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'])
경로 내에 존재하는 폴더와 파일 리스트를 검색
os.listdir(path)
path
의 리스트를 가져온다- 단점으로는,
path
에 해당하는 리스트만 가져와서, 하위 폴더의 리스트의 파일은 가져오지 않는다.- ex)
file4.txt
는 모른다.
import os
path = 'C:\\test'
for file in os.listdir(path):
print(file)
# output
>>>
directory1
file1.txt
file2.txt
file3.txt
경로의 파일 목록을 가져오는 방법
glob.glob()
- glob 모듈의 glob 함수는 사용자가 제시한 조건에 맞는 파일명을 리스트 형식으로 가져온다.
*
는 임의 길이의 모든 문자열을 의미?
는 한자리의 문자를 의미recursive=True
로 설정하고**
를 사용하면 모든 하위 디렉토리까지 탐색한다. (default=False
)
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']
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']