특정 문자열을 포함하는 파일명 찾아 압축 파일 생성하기

파일 작업을 하다 보면, 특정 디렉토리에 무수히 많은 파일 중에서 특정 문자열(Ex. “매출”, “금액” 등)을 포함하는 파일만 찾아 압축하여 누군가에서 전달해야 하는 상황이 많이 발생합니다.

파일의 개수가 많지 않은 경우, 일일이 찾아 마우스로 선택하고, 압축하는 방법이 가능합니다. 하지만, 파일이 1,000개 혹은 2,000개 이상 되는 특정 디렉토리에서 우리가 원하는 파일만 찾아 압축한다는 것이 불가능합니다.

따라서, 이번 포스팅에서는 파이썬으로 특정 문자열을 포함하는 파일명을 찾아 리스트로 저장하고, 압축 파일을 생성하는 방법에 대해서 알아보겠습니다.

특정 문자열을 포함하는 파일명 찾기

# 작업에 필요한 os 라이브러리 임포트
import os

# 탐색할 디렉토리 경로
directoryPath = '탐색할 디렉토리 경로명 지정'

# 찾고자 하는 문자열
searchString = '찾고자 하는 문자열 지정'

# 조건에 맞는 파일명을 저장할 리스트 생성
matchingFiles = []

# 디렉토리 내 파일들을 검색하며, 조건에 부합하는 파일명 찾아 저장하기
for fileName in os.listdir(directoryPath):

    # 파일이 '.파일형식' 형식이고, 찾고자 하는 문자열이 포함된 파일명과 저장경로가 결합된 문자열 matchingFiles에 저장
    if fileName.endswith('.csv') and searchString in matchingFiles :
        matchingFiles.append(directoryPath + '/' + fileName)

# 결과 확인
matchingFiles


특정 문자열을 포함하는 파일명을 찾아 압축파일 생성하기

# 압축파일을 생성하는데 필요한 zipfile 라이브러리 임포트
import zipfile

# 압축파일명 정의
zipName = '압축파일명'

# 압축파일의 전체 경로 생성
zipFilePath = os.path.join(directoryPath, zipName)

# 압축파일 생성
with zipfile.ZipFile(zipFilePath, 'w') as zipf:
    for file in matchingFiles :
        zipf.write(file, os.path.basename(file))


특정 문자열을 포함하는 파일명을 찾아 압축파일 생성 코드 예시

앞서 알아본 코드를 활용하여 실제 코드를 작성해 보겠습니다.

  • “D:\저장\zzinnam\03. 워드프레스\python” 디렉토리에 있는 파일들 중에서
  • “추출”이라는 단어가 포함된 .webp 확장자를 가지는 파일들을 찾아
  • “최종파일들” 이라는 압축파일명을 가지는 압축파일 생성

# 작업에 필요한 os 라이브러리 임포트
import os

# 탐색할 디렉토리 경로
directoryPath = 'D:/저장/zzinnam/03. 워드프레스/python'

# 찾고자 하는 문자열
searchString = '추출'

# 조건에 맞는 파일명을 저장할 리스트 생성
matchingFiles = []

# 디렉토리 내 파일들을 검색하며, 조건에 부합하는 파일명 찾아 저장하기
for fileName in os.listdir(directoryPath):

    # 파일이 webp 형식이고, 찾고자 하는 문자열이 포함된 파일명과 저장경로가 결합된 문자열 matchingFiles에 저장
    if fileName.endswith('.webp') and searchString in fileName:
        matchingFiles.append(directoryPath + '/' + fileName)

# 결과 확인
matchingFiles

-----------------------------------------------------------------------------------------------------
['D:/저장/zzinnam/03. 워드프레스/python/추출된-데이터-예시.webp',
 'D:/저장/zzinnam/03. 워드프레스/python/추출하고자 하는 최종 데이터.webp',
 'D:/저장/zzinnam/03. 워드프레스/python/추출하고자-하는-최종-데이터.webp']

총 3개의 파일을 찾았고, 해당 파일의 파일명과 저장경로가 결합된 문자열을 matchingFiles에 저장하였습니다.

# 압축파일을 생성하는데 필요한 zipfile 라이브러리 임포트
import zipfile

# 압축파일명 지정
zipName = '추출파일들.zip'

# 압축파일의 전체 경로 생성
zipFilePath = os.path.join(directoryPath, zipName)

# 압축파일 생성
with zipfile.ZipFile(zipFilePath, 'w') as zipf:
    for file in matchingFiles:
        zipf.write(file, os.path.basename(file))



‘D:/저장/zzinnam/03. 워드프레스/python’ 경로에 “추출” 이라는 문자열이 포함된 “.webp” 확장자를 가지는 파일들을 압축한 압축파일 “추출파일들.zip” 이 생성되었음을 확인할 수 있습니다.

이번 포스팅에서는 파이썬으로 특정 문자열을 포함하는 파일명 찾아 리스트로 저장하고, 압축 파일을 생성하는 방법에 대해서 알아보았습니다.


감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다