본문 바로가기
파이썬 공부

파이썬으로 폴더 내 모든 파일 읽기, 코드 단 3줄이면 됨

by 파이썬코딩대학 2024. 11. 15.

파이썬으로 폴더 내 모든 파일 읽기: 초보자를 위한 친절한 가이드

안녕하세요, 프로그래밍 초보 여러분! 😊 오늘은 파이썬을 사용하여 특정 폴더 내의 모든 파일을 읽는 방법에 대해 알아보려고 해요. 파이썬은 정말 강력하고 유용한 언어라서 파일을 다루는 것도 참 쉽답니다. 특별히, osglob라는 파이썬 모듈을 이용하면 아무리 많은 파일도 손쉽게 처리할 수 있어요.

파이썬으로 폴더 내 모든 파일 읽기, 코드 단 3줄이면 됨
파이썬으로 폴더 내 모든 파일 읽기, 코드 단 3줄이면 됨

왜 파일을 읽는 걸까?

우리가 폴더 내의 모든 파일을 읽고 싶어하는 이유는 정말 다양하죠. 예를 들어:

  • 특정 디렉토리에 저장된 대량의 데이터를 접근하고 분석하고 싶을 때
  • 로그 파일을 한 번에 모아 보고 싶을 때
  • 여러 개의 텍스트 파일에서 특정한 정보를 검색하고 싶을 때

그렇다면, 이제 본격적으로 폴더 내 모든 파일을 읽는 방법을 알아볼까요?

 

제가 외주 개발을 할 때 자주 사용하는 코드들을 알려드릴게요 : )

 

 

방법 1: os 모듈 사용하기

먼저, os 모듈을 사용해 모든 파일을 읽는 방법부터 알아볼게요.

import os

# 폴더 경로를 지정합니다.
folder_path = '/path/to/your/folder'

# 폴더 내 모든 파일을 읽습니다.
def read_all_files_in_folder(folder_path):
    # 폴더 내의 모든 파일 이름을 가져옵니다.
    files = os.listdir(folder_path)

    # 모든 파일 처리하기
    for filename in files:
        # 파일의 전체 경로를 만듭니다.
        file_path = os.path.join(folder_path, filename)

        # 파일인지 확인하고, 디렉토리가 아니면 파일을 읽습니다.
        if os.path.isfile(file_path):
            with open(file_path, 'r') as file:
                content = file.read()
                print(f"--- {filename} ---")
                print(content)
                print("\n")

# 함수 호출
read_all_files_in_folder(folder_path)

설명:

  • os.listdir(folder_path): 해당 폴더의 모든 파일과 디렉토리의 이름을 리스트 형태로 반환합니다.
  • os.path.join(): 폴더 경로와 파일 이름을 결합하여 전체 파일 경로를 만들어줍니다.
  • os.path.isfile(): 경로가 파일인지 확인하며, 디렉토리인지 아닌지를 검사합니다.
  • open(file_path, 'r'): 파일을 읽기 모드로 오픈합니다.

방법 2: glob 모듈 사용하기

다음으로 알아볼 방법은 glob 모듈을 사용하는 것이에요. 이 모듈은 파일 이름 패턴 매칭을 쉽게 해 준답니다.

import glob

# 폴더 경로를 지정합니다.
folder_path = '/path/to/your/folder/*'  # 모든 파일을 대상으로 한다면 *을 사용합니다.

# 폴더 내 모든 파일을 읽습니다.
def read_all_files_in_folder_glob(folder_path):
    # 폴더 내의 모든 파일 경로를 가져옵니다.
    files = glob.glob(folder_path)

    # 모든 파일 처리하기
    for file_path in files:
        # 파일인지 확인
        if os.path.isfile(file_path):
            with open(file_path, 'r') as file:
                content = file.read()
                print(f"--- {file_path} ---")
                print(content)
                print("\n")

# 함수 호출
read_all_files_in_folder_glob(folder_path)

설명:

  • glob.glob(): 지정된 패턴과 일치하는 모든 파일의 경로를 리스트로 반환합니다. 여기서 *는 모든 파일을 대상으로 한다는 의미에요.

언제 osglob 을 사용할까?

os 모듈은 기본적으로 파일과 디렉토리 관리에 탁월하고, glob 모듈은 특정 패턴으로 파일을 가져오기에 유리합니다. 따라서, 여러분이 어떤 파일 구조와 패턴을 다루는지에 따라 적절히 선택하면 된답니다.

마무리

자, 이렇게 해서 두 가지 방법으로 폴더 내의 모든 파일을 읽는 법에 대해 알아봤어요! 이제 여러분은 직접 폴더를 지정하고 파일을 확인해 볼 수 있습니다. 필요한 곳에 이 코드를 응용해 보세요.

프로그래밍 초반에는 이런 작은 성취가 큰 자신감을 줍니다. 이해하기 어려운 부분이 있거나 궁금한 점이 있으면 언제든지 질문해 주세요. 😊 Happy Coding! 🐍