폴더검색
특정 폴더에 있는 모든 파일과 하위 폴더의 목록을 리스트(List)로 가져올 수 있습니다. os.listdir() 함수를 사용하면 됩니다. [리스트에 대한 자세한 내용은 자료형 페이지를 참고해 주세요. 리스트는 대괄호 [ ] 안에 쉼표(,)로 구분된 문자나 숫자의 나열입니다.]
import os # os페이지 참고
os.listdir()
Python
복사
1.
os.listdir(경로): 지정된 경로의 모든 파일/폴더 목록을 리스트로 반환
2.
os.listdir(): 매개변수를 비워두면 현재 작업 디렉토리의 파일/폴더 목록을 반환
3.
반환되는 목록에는 숨김 파일도 포함됨
세금계산서 파일명만 추출
폴더를 검색하면 파일명이 리스트로 출력됩니다. 필요한 파일만 있으면 좋겠지만 인생이 그렇게 쉽지 않죠! 그래서 기초문법 for문과 if문을 사용하겠습니다. 각각의 페이지 참고해주세요~!
1. for와 if활용
1)폴더내 파일 리스트 변수에 저장
import os
fileList = os.listdir()
fileList
Python
복사
2)for문으로 출력
import os
fileList = os.listdir()
for file in fileList:
print(file)
Python
복사
3)“매출세금계산서목록”만 추출
import os
fileList = os.listdir()
for file in fileList:
if '매출전자세금계산서목록' in file:
print(file)
Python
복사
4)추출결과만 리스트화
import os
fileList = os.listdir()
taxFiles = []
for file in fileList:
if '매출전자세금계산서목록' in file:
taxFiles.append(file)
taxFiles
Python
복사
2.리스트 컴프리헨션
리스트 컴프리헨션은 파이썬에서 제공하는 간결하고 효율적인 리스트 생성 방법입니다. 기존의 for문과 if문을 사용하여 여러 줄에 걸쳐 작성해야 했던 코드를 단 한 줄로 압축할 수 있어 코드의 가독성과 성능을 향상시킬 수 있습니다. 대괄호 안에 실행문과 for문, 선택적으로 if문을 포함하여 원하는 조건의 리스트를 생성할 수 있으며, 이는 특히 데이터 처리나 필터링 작업에서 매우 유용하게 활용됩니다.
for문과 if문으로 원하는 파일을 추출하는 과정을 리스트 컴프리헨션을 사용하면 다음과 같이 한 줄로 작성할 수 있습니다.
import os
fileList = os.listdir()
taxFiles = [file for file in fileList if '매출전자세금계산서목록' in file]
taxFiles
Python
복사
3.glob라이브러리 활용
glob 라이브러리는 파일 경로 패턴 매칭에 특화된 기능을 제공합니다. 특정 패턴의 파일을 찾을 때 매우 유용하며, 정규표현식과 유사한 와일드카드 문자를 사용할 수 있습니다.
import glob
taxFiles = glob.glob('*매출전자세금계산서목록*.xls')
taxFiles
Python
복사
1.
glob.glob(패턴): 지정된 패턴과 일치하는 모든 파일 경로를 리스트로 반환
2.
와일드카드 문자 *: 0개 이상의 임의의 문자와 매칭
3.
와일드카드 문자 ?: 1개의 임의의 문자와 매칭
이 방법은 이전의 os.listdir()과 for문을 사용한 방식보다 더 간단하고 직관적입니다. 특히 특정 확장자나 파일명 패턴을 찾을 때 매우 효과적입니다.