Python

[파이썬] 특정 폴더 안의 확장자별 파일 리스트 생성 - os.listdir()

weweGH 2025. 3. 28. 09:00
반응형

특정 폴더 안의 확장자 리스트
특정 폴더 안의 확장자 리스트


특정 폴더 안의 확장자별 파일 리스트 생성 - os.listdir()


들어가며

여러 개의 파일이 저장된 폴더에서 특정 확장자 파일만을 추출할 때, 파이썬 os의 listdir을 사용하여 편리하게 리스트를 불러올 수 있습니다.


파일 리스트 생성


먼저 필요한 패키지인 os를 import 합니다.

import os

원하는 폴더의 경로를 적고 os의 listdir을 활용하여 리스트를 불러옵니다. 현재 monthly_fc 폴더에는 오른쪽 이미지와 같이 csv와 txt 파일이 모두 저장되어 있습니다.

csv_list = os.listdir('/Users/monthly_fc/')
csv_list[0:5]

csv_listcsv, txt
monthly_fc csv, txt


특정 확장자 파일만 추출하고 싶다면, find를 사용합니다. 만약 위 폴더처럼 csv 파일과 txt 파일이 함께 있는 경우에 csv 파일 리스트만 추출하고 싶다면, 다음과 같이 필터링을 합니다. 

csv_list = os.listdir('/Users/monthly_fc/')
csv_list = [file for file in csv_list if file.find(".csv") !=-1]
csv_list[0:5]

monthly_fc csv list
monthly_fc csv

반응형

파일 리스트 생성을 활용한 데이터프레임 병합


os.listdir은 여러 개의 파일을 하나로 합칠 때도 유용합니다. 다음과 같이 monthly_fc 폴더 안의 csv 파일만 추출하여 csv_list를 생성합니다. 그리고 for문을 활용하여 각각의 파일을 읽고 concat으로 합치면, monthly_fc 폴더 안의 파일들을 1개의 데이터프레임으로 생성할 수 있습니다.

# montly_fc 폴더 내의 csv 파일 리스트 생성
csv_list = os.listdir('/Users/monthly_fc/')
csv_list = [file for file in csv_list if file.find(".csv") !=-1]

df_tot = pd.DataFrame() # 빈 데이터프레임 생성
for csv in csv_list:
    df = pd.read_csv('/Users/monthly_fc/') + csv
    df_tot = pd.concat([df_tot, df]) # csv 파일 1개의 데이터프레임으로 병합

반응형