[python] 파이썬: 특정 폴더의 파일 검색하기


특정 폴더 파일 검색


폴더 안 파일명 검색

import os

path = "/Users/idaeung/Downloads/test" # 검색하고자하는 폴더 경로
file_names = os.listdir(path)

# 출력
# ['24_20190416.xlsx', '29_20190431.xlsx', '28_20190423.xlsx', '21_20190409.xlsx', '23_20190411.xlsx']

os.listdir(path)

Notes

path에 있는 파일명을 리스트로 가져올 수 있습니다.
파일 리스트는 파일명만을 포함하고 있으므로 경로를 포함한 파일명을 따로 구해주어야 합니다.


경로를 포함한 파일명 구하기

for file_name in file_names: 
      full_filename = os.path.join(path, file_name)

# 출력
# /Users/idaeung/Downloads/test/24_20190416.xlsx
# /Users/idaeung/Downloads/test/29_20190431.xlsx
# /Users/idaeung/Downloads/test/28_20190423.xlsx
# /Users/idaeung/Downloads/test/21_20190409.xlsx
# /Users/idaeung/Downloads/test/23_20190411.xlsx

os.path.join(path, file_name)

Notes

경로를 병합하여 새 경로를 생성(path + file_name)합니다.


전체코드

import os

path = "/Users/idaeung/Downloads/test" 
file_names = os.listdir(path)

for file_name in file_names: 
      full_filename = os.path.join(pathfile_name)



하위 폴더 검색을 보다 쉽게 하는 os.walk

import os

path = "/Users/idaeung/Downloads/test" 
for dir_path, dir_names, file_names in os.walk(path):
      print("dir_path = {0}".format(dir_path))
      print("dir_names = {0}".format(dir_names))
      print("file_names = {0}".format(file_names))

# 출력
# dir_path = /Users/idaeung/Downloads/test
# dir_names = []
# file_names = ['24_20190416.xlsx', '29_20190431.xlsx', '28_20190423.xlsx', '21_20190409.xlsx', '23_20190411.xlsx']

os.walk()

Notes

os.walk는 특정 폴더부터 그 하위의 모든 폴더를 차례대로 방문하여 파일 리스트를 검색합니다.

dirpath는 해당 디렉토리 경로
dirnames는 해당 디렉토리의 하위 디렉토리 목록
filenames는 해당 디렉토리의 하위 파일 목록입니다.


참고문헌

[1] https://www.tutorialspoint.com/python/os_listdir.htm
[2] https://docs.python.org/3/library/os.path.html
[3] https://docs.python.org/3/library/os.html

댓글

이 블로그의 인기 게시물

[opencv-python] 이미지 크기조절(resize) 하는 법

[python]파이썬: csv reader header skip (첫번째 행 무시하기, 안읽기)

[python] selenium close와 quit 차이점