파이썬 폴더 안에 파일 한번에 읽기
파이썬 코드로 폴더 안에 파일을 한번에 읽는 방법을 알려드리겠습니다. 한번에 확장자별 파일 불러오기, 하위 디렉토리 파일 읽기 뿐만 아니라 모든 하위 디렉토리에 있는 파일 읽기 등의 폴더 안에 파일 한번에 읽는 방법을 알아보겠습니다.
2023.06.27 - [Programing] - ADsP(데이터분석 준전문가) 자격증 취득 후기, 공부법, 교재, 수강료 등 총정리
2023.06.23 - [Programing] - [Python] 파이썬 가상환경 생성 및 설치하기(Anaconda)
2023.05.11 - [Programing] - [Python] 폴더 안에 파일 한번에 불러오기
2023.05.09 - [Programing] - [Python] 파이썬 파일 이동 파일 옮기기 - shutil.move 구현하기
2023.05.08 - [Programing] - [Python] 파이썬 csv파일 행분리 및 엑셀파일 행분리 후 저장
예제코드
1. 폴더 내의 파일 한번에 읽기 - os.listdir
import os
path = '경로'
file_list = os.listdir(path)
os.listdir을 사용하면 지정한 폴더 내의 파일을 한번에 불러오기 기능을 구현할 수 있습니다.
2. 폴더 내의 파일 중 특정 확장자 읽기
image, json, xml 파일 3가지가 있다는 가정 하에 예제를 만들었습니다.
import os
path = '경로'
file_list = os.listdir(path)
# 파일명이 .jpg로 끝나는 파일
img_list = [file for file in file_list if file.endswith('.jpg')]
# 파일명이 aa로 시작하는 파일
start_aa_list = [file for file in file_list if file.startswith('aa')]
# 파일명에 포함된 이름
img_list = [file for file in file_list if '.jpg' in file]
폴더 안의 파일 중 특정 확장자를 endswith('확장자')로 불러올 수가 있는데
파일명이 '.jpg'로 끝나는 파일들을 불러올 때는 if file.endswith('.jpg')
파일명이 'aa'로 시작하는 파일들을 불러올 때는 if file.startswith('aa')
파일명에 '.jpg'가 포함되는 파일들을 불러올 때는 if '.jpg' in file
이러한 방식으로 적용해주시면 폴더 내의 파일 한번에 불러오기는 쉽게 적용하실 수 있습니다.
3. 모든 하위폴더의 파일 한번에 읽기 - os.walk()
다음은 데이터 관련 업무를 보시는 분들은 폴더의 depth가 깊을 때가 많습니다.
기관에서 6개월정도 교육받고 처음오시는 신입분들이 depth가 깊은 폴더내의 파일을 가져오는 데 힘들어 하시더라구요.
그래서 다음과 같이 모든 하위 파일을 한번에 불러오는 방법을 안내해 드리겠습니다.
path = '최상위 폴더 경로'
self.img_list = []
img_append = img_list.append
self.json_list = []
json_append = json_list.append
self.pcd_list = []
pcd_append = pcd_list.append
for root,dirs,files in os.walk(path):
for file_name in files:
if file_name.endswith(('.jpg','.png')) :
img_append(os.path.join(root,file_name))
elif file_name.endswith('.pcd') :
pcd_append(os.path.join(root,file_name))
elif file_name.endswith(('.json','.txt')) :
json_append(os.path.join(root,file_name))
먼저 폴더 내의 파일을 한번에 불러오기 위해 jpg, png, pcd, json, txt 의 5가지 확장자를 불러와야 한다고 가정하에 작성하였습니다.
file_name.endswith(('jpg','png'))는 폴더 내의 '.jpg', '.png'로 끝나는 파일을 모두 불러오게 되니 적용해서 사용해 주세요
file_name.endswith(.pcd)는 폴더 내의 pcd파일을 한번에 불러올 때 사용합니다.
마지막 json파일이나 txt 파일을 불러올 때는 file_name.endswith(('.json','.txt')) 로 불러왔습니다.
오늘은 3가지 방법에 대해 알아봤습니다.
1. 특정 폴더 안에 파일 한번에 불러오기
2. 특정 폴더 안에 파일 확장자별 불로오기, 시작하는 이름으로 불러오기, 포함되는 이름으로 불러오기
3. 모든 하위 폴더의 파일 한번에 불러오기
잘 적용해서 사용해 주시고 다음엔 더 유익한 정보로 포스팅 하겠습니다. 감사합니다!
'Programing' 카테고리의 다른 글
[Python] 파이썬 json파일 병합하기, json file merge (22) | 2023.07.28 |
---|---|
[Python] 파이썬 파일 이동 파일 옮기기 - shutil.move 구현하기 (41) | 2023.05.09 |
[Python] 파이썬 csv파일 행분리 및 엑셀파일 행분리 후 저장 (12) | 2023.05.08 |