본문 바로가기
Programming/Python

[Python] fnmatch 폴더 및 파일명 찾기

by 코딩하는 금융인 2024. 1. 2.

안녕하세요.

오늘은 파이썬 내장 모듈인 fnmatch를 활용하여 폴더 및 파일 이름의 패턴을 찾는 방법에 대해 알아보겠습니다.

 

 파이썬 fnmatch 폴더·파일명 탐색하기

 - test 실습을 위해 아래와 같이 py_test 폴더에 파일들을 세팅함

py_folder

 

▣ 특정 문자열 가진 파일 찾기

 - 문자열과 * 조합을 통해 내가 찾고자 하는 문자를 가진 폴더나 파일명들을 찾을 수 있음

import os
import fnmatch

# 경로에 해당하는 폴더명
py_folder = 'C:/Users/코딩하는 금융인/Desktop/블로그/test/py_test'

# 출력 리스트
data_list = []

for i in os.listdir(py_folder):
    if fnmatch.fnmatch(i, '*data*'):
        data_list.append(i)

print(data_list)

 

: 결과 확인하기

['data_exp_1.txt', 'data_exp_2.txt', 'data_exp_3.txt', 'data_folder', 'data_pic.jpg', 'data']

 

▣ 문자열 길이로 찾기

 - 파일이 특정 길이로 이루어져있는 경우, '?'나 [정규표현식]을 통해 폴더나 파일명들을 찾을 수 있음

 - 유의할 점은 .txt나 .jpg 등 파일 유형을 고려해야 함

## 1) 4자리수 찾기
# 출력 리스트
data_list = []

for i in os.listdir(py_folder):
    if fnmatch.fnmatch(i, '????'):
        data_list.append(i)

print(data_list)

## 2) data_exp_숫자 txt 파일 찾기
# 출력 리스트
data_exp_list = []

for i in os.listdir(py_folder):
    if fnmatch.fnmatch(i, 'data_exp_[0-9].txt'):
        data_exp_list.append(i)

print(data_exp_list)

 

: 결과 확인하기

1) ['data']
2) ['data_exp_1.txt', 'data_exp_2.txt', 'data_exp_3.txt']

 

 

 

 

반응형

댓글