Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python OS 모듈로 폴더 내 여러 텍스트 파일 한 번에 읽는 방법

Python은 파일과 객체를 자유롭게 처리할 수 있고, 다양한 애플리케이션을 만들 수 있는 강력한 언어입니다. 풍부한 확장 기능과 패키지를 활용하면 완전한 기능을 갖춘 애플리케이션도 손쉽게 구축할 수 있습니다.

시스템 내부의 파일을 직접 다루고 싶다면 Python의 OS 모듈을 사용하는 것이 좋습니다. OS 모듈은 운영체제와 상호작용할 수 있는 시스템 수준의 기능을 제공하여 파일 제어 작업을 간편하게 처리해 줍니다.

이번 글에서는 Python의 OS 모듈을 활용해 하나의 폴더에 있는 여러 텍스트 파일을 읽어 오는 방법을 단계별로 살펴보겠습니다.

여러 텍스트 파일 읽기 절차

  • 노트북 또는 스크립트에 OS 모듈을 임포트합니다.
  • 텍스트 파일이 저장되어 있는 디렉터리 경로를 정의합니다.
  • 디렉터리의 파일 목록을 생성한 뒤, 반복문을 돌며 각 파일이 올바른 확장자(.txt)를 가지고 있는지 확인합니다.
  • 모듈에 정의된 함수를 사용해 파일 내용을 읽어 옵니다.

예제 코드

# 필요한 라이브러리 임포트
import os

# 디렉터리 위치 정의
path = r"C:/Users/Sairam/Documents/"

# 작업 디렉터리 변경
os.chdir(path)

def read_files(file_path):
    with open(file_path, 'r') as file:
        print(file.read())

# 디렉터리 내 모든 파일을 순회
for file in os.listdir():
    if file.endswith('.txt'):
        # 해당 파일의 전체 경로 생성
        file_path = f"{path}/{file}"
        read_files(file_path)

실행 결과

Sample 1
========
Welcome to Tutorialspoint.

You are browsing the best resource for Online Education.

Sample 2
========
A distributed ledger is a type of data structure which resides across multiple computer devices, generally spread across locations or regions.

Distributed ledger technology (DLT) includes blockchain technologies and smart contracts.

While distributed ledgers existed prior to Bitcoin, the Bitcoin blockchain marks the convergence of a host of technologies, including timestamping of transactions, Peer-to-Peer (P2P) networks, cryptography, and shared computational power, along with a new consensus algorithm.

위 예제에서는 지정한 위치에 두 개의 텍스트 파일이 있으며, 프로그램이 이 두 파일의 내용을 차례대로 읽어 콘솔에 출력했습니다. os.listdir()로 디렉터리의 모든 항목을 가져오고, endswith('.txt') 조건으로 텍스트 파일만 골라낸 것이 핵심입니다.

참고: glob 모듈로 더 간결하게 처리하기

OS 모듈 외에도 glob 모듈을 함께 사용하면 특정 패턴의 파일을 더욱 간결하게 필터링할 수 있습니다. 예를 들어 glob.glob(os.path.join(path, '*.txt'))를 사용하면 확장자 검사 코드 없이 .txt 파일 목록을 바로 얻을 수 있어 코드가 더 깔끔해집니다.