본문 바로가기
Python/Python_basic

[Python] 멀티파일 읽기(read multiple files)

by Mr.DonyStark 2023. 11. 6.

□ 현업에서 생각보다 다양한 확장자 형식 파일읽기는 매우 중요
python os 라이브러리 사용은 능숙해야함

 ○ .listdir(매개변수) : 특정경로의 모든 파일 출력

 ○ .endwish('파일형식') : 특정 파일형식으로 끝나는 파일검색
getcwd() : 현재 작업경로 반환
listdir() : 지정한 경로의 파일 & 디렉토리 전부반환
glob 패키지도 사용 가능

#예제: 특정경로에 모든텍스트파일(txt)를 읽은 후 리스트로 출력

#방법1
import os 

def read_txt_file(file_path): #함수정의
    #결과리스트
    outputs = []
    #모든 파일 읽기 
    for file in os.listdir(file_path):      #os.listdir(매개변수) 특정 경로의 모든 파일 출력
        
        if file.endswith(".txt"):# .file.endwish(형식) txt 파일형식로 끝나는 것 탐색
            target_path = f'{file_path}\{file}'  #txt 형식을 뒤에 붙여 파일 경로 완성

        #위에서 지정한 파일들을 조회하며 f라는 변수로 지정
        with open(target_path, 'r') as f:
            outputs.append(f.read().strip('\n')) #빈 결과리스트에 read함수를 활용해 쓴 값 추가 + \n 줄바꿈표시 제거
            
    return outputs
    
print(f'for문 사용 결과 : {read_txt_file("C:/Users/User/Downloads/python_basic_1.5/2.QnA/source/27-1")}')

#방법2
import glob    #glob 라이브러리 호출

def read_text_file2(file_path):
    #결과 리스트 생성
    outputs2 = []
    
    for file in glob.glob(file_path + '\*.txt'):   #끝이 .txt 형식인 파일을 불러옴
        with open(file, 'r') as f:

            
            outputs2.append(f.read().strip('\n'))
    return outputs2

print(f'glob 사용 결과 : {read_text_file2("C:/Users/User/Downloads/python_basic_1.5/2.QnA/source/27-1")}')