[Python] 하위 폴더 파일 개수 확인, 3가지 방법
June 30, 2024
하위 디렉토리의 모든 파일 개수를 세는 방법에 대해서 알아보겠습니다.
1. os.walk()를 이용한 방법
os.walk(dir)
는 dir 디렉토리 하위의 모든 파일 및 폴더를 순회하면서 파일 이름 등의 정보를 전달합니다.
for _, _, files in os.walk(dir_path)
: 특정 디렉토리 아래의 파일들이files
리스트로 전달됨, 리스트의 개수를 더하여 전체 파일 개수를 셈
import os
dir_path = '/home/js/IdeaProjects'
file_count = 0
for _, _, files in os.walk(dir_path):
file_count += len(files)
print(f"파일 개수: {file_count}")
Output:
파일 개수: 98
2. glob()을 이용한 방법
glob()
은 인자로 전달된 경로의 하위 파일 리스트를 리턴합니다. 리스트의 개수를 세서 파일 개수를 확인할 수 있습니다.
- glob에서
**
는 하위 디렉토리 및 파일의 경로를 가져와서 리스트로 리턴 .
으로 시작하는 숨겨진 파일들은 가져오지 않음
import glob
import os
dir_path = '/home/js/IdeaProjects/python-ex'
file_list = glob.glob(os.path.join(dir_path, '**'), recursive=True)
print(file_list)
file_count = len(file_list)
print(f"파일 개수: {file_count}")
Output:
파일 개수: 94
디렉토리가 아닌, 파일 개수만 세기
glob은 디렉토리와 파일의 전체 경로를 리스트로 리턴하기 때문에, 아래와 같이 isfile()
로 파일만 분류하여 개수를 셀 수 있습니다.
import glob
import os
dir_path = '/home/mjs/IdeaProjects/python-ex'
file_list = glob.glob(os.path.join(dir_path, '**'), recursive=True)
print(file_list)
file_count = len([f for f in file_list if os.path.isfile(f)])
print(f"파일 개수: {file_count}")
3. os.listdir()을 이용한 방법
os.listdir(dir)
는 dir의 하위 파일들을 리스트로 리턴합니다.
.
으로 시작하는 숨겨진 파일들도 가져옴- 디렉토리의 하위 폴더, 파일만 가져오고, 하위 폴더의 하위 파일들은 가져오지 않음, 하위 폴더의 하위 파일도 개수를 세야한다면, 그 하위 폴더에 대해서
listdir()
로 파일을 가져와서 개수를 세야함 item_path
처럼 파일 path를 만들 수 있기 때문에, 디렉토리가 아닌 파일의 개수만 세려면os.path.isfile(item_path)
로 파일인지 확인하여 파일만 셀 수 있음
import os
dir_path = '/home/mjs/IdeaProjects/python-ex'
file_count = 0
all_items = os.listdir(dir_path)
for item in all_items:
item_path = os.path.join(dir_path, item)
file_count += 1
print(f"파일 개수: {file_count}")
Output:
파일 개수: 94