다음과 같이 폴더와 파일을 생성해두었다.
C:\test └ directory1 └ file4.txt └ file1.txt └ file2.txt └ file3.txt |
1. os.listdir
os.listdir(path)
특정 경로 내에 존재하는 폴더(디렉토리)와 파일 리스트를 검색 (1-depth)
import os
file_path = 'C:\\test'
for file in os.listdir(file_path):
print(file)
위와 같이 작성한 후 실행시키면
directory1
file1.txt
file2.txt
file3.txt
이렇게 출력된다.
directory1 폴더 아래의 file4.txt 는 출력되지 않는다.
2. os.walk
os.walk(path)
특정 경로 내에 존재하는 폴더(디렉토리)와 파일 리스트 뿐만 아니라, 모든 하위 디렉토리 구조를 다 검색
file_path = 'C:\\test'
for file in os.walk(file_path):
print(file)
위 내용을 실행시키면,
('C:\\test', ['directory1'], ['file1.txt', 'file2.txt', 'file3.txt'])
('C:\\test\\directory1', [], ['file4.txt'])
listdir 과 출력 형태가 다른 걸 볼 수 있다.
이 경우 directory1 폴더 안의 file4.txt 까지 출력된다.
(경로, 경로 내 디렉토리 리스트, 경로 내 파일 리스트)
↑ os.walk 출력 형식
각각의 출력 결과를 따로 받아오려면
file_path = 'C:\\test'
for (path, dir, file) in os.walk(file_path):
print("path:", path)
print("dir:", dir)
print("file:", file)
print("----------")
요렇게 작성하면 된다.
실행 결과 ↓
path: C:\test
dir: ['directory1']
file: ['file1.txt', 'file2.txt', 'file3.txt']
----------
path: C:\test\directory1
dir: []
file: ['file4.txt']
특정 경로 내 모든 디렉토리 내에 존재하는 '파일'들만 검색하고 싶으면
os.walk 를 활용하여 위처럼 file 리스트를 활용하면 됨!
300x250
':: python' 카테고리의 다른 글
python :: 파이썬 텍스트 파일 내 특정 단어 치환(replace)하기 (3) | 2021.06.23 |
---|---|
python :: 파이썬 requests 로 REST API 호출하기 (2) | 2021.06.21 |
python :: 파이썬 파일 복사 shutil.copy 속도 빠르게 향상시키기 (4) | 2021.06.17 |
python :: 파이썬 파일/폴더 복사 shutil copy, copy2, copyfile, copytree (2) | 2021.06.16 |
python :: 파이썬 zipfile 로 파일 압축하기(하위폴더 포함/미포함) & 압축 해제하기 (0) | 2021.06.15 |