Python/45가지 파이썬 기초문법 예제

파이썬 (27) 멀티 파일 읽기

monstro 2025. 5. 13. 15:11
728x90
반응형

이번 포스트에서는 여러 파일들을 한번에 읽어오는 방법을 알아본다

예제는 다음과 같다

 

위와 같이 Resource 폴더 아래에 있는 A~Z까지의 txt 파일을 읽어와서

하나의 리스트 형태로 정리한 다음 해당 리스트를 출력하면 된다

 

1) os 모듈과 replace 메서드 사용

import os

def readFiles(filespath):
    ret = []
    if os.path.exists(filespath):
        for file in os.listdir(filespath):
            with open(f"{filespath + file}", 'r') as f:
                ret.append(f.read().replace("\n", ""))
    return ret
    
print(readFiles("Resource/"))

 

os 모듈에 존재하는 listdir 메서드를 사용하면

경로를 인자로 받고 해당 경로에 있는 모든 파일들을 리스트 형태로 반환한다

리스트 형태로 반환된 경로들을 순회하면서 읽어오고 읽은 파일에서 개행 문자를 지운 후 리스트에 저장한다

 

최종 실행 결과는 다음과 같다

 

2) glob 모듈과 strip 메서드 사용

import glob

def readFiles2(filespath):
    ret = []
    if os.path.exists(filespath):
        for file in glob.glob(filespath + '\*.txt'):
            with open(f"{file}", 'r') as f:
                ret.append(f.read().strip("\n"))
    return ret
    
print(readFiles2("Resource"))

 

glob 모듈을 사용하면 경로에 있는 파일들을 가져오는 작업이 훨씬 빨라진다

os 모듈만을 사용했을 때 보다 효율이 좋아지므로 glob 모듈을 사용하는 것이 좋다

로직을 살펴보면 이전과 동일하게 경로를 인자로 받고 해당 경로에서 txt 확장자를 지닌 파일을 가져온다

가져온 파일을 순회하면서 읽어오고 개행 문자를 지워서 리스트에 저장하여 반환한다

 

최종 실행 결과는 다음과 같다

728x90
반응형