본문 바로가기
 
 
 
카테고리 없음

파이썬 파일 입출력 라이브러리 완벽 정리 - fileinput과 pickle로 파일 읽기 및 저장하는 방법

by mooonstory 2025. 4. 17.

 
반응형

파이썬은 다양한 파일 입출력 라이브러리를 제공하여 데이터를 쉽게 처리할 수 있도록 돕습니다. 그 중에서도 fileinputpickle 모듈은 각각 파일을 읽고 쓰는 데 유용한 도구입니다. 이 글에서는 이 두 라이브러리를 활용하여 파일을 읽고 저장하는 방법 5가지를 심도 있게 다뤄보겠습니다.

fileinput 모듈을 활용한 파일 읽기

fileinput 모듈은 여러 파일에서 데이터를 한 번에 읽을 수 있도록 돕는 기능을 제공합니다. 이 모듈을 사용하면 파일을 반복적으로 열고 닫지 않고도 여러 파일의 내용을 쉽게 처리할 수 있습니다.

사례 1: 여러 파일에서 텍스트 읽기

다음은 여러 텍스트 파일에서 내용을 읽어오는 간단한 예제입니다. 이 코드는 지정된 여러 파일을 열고 각 파일의 내용을 출력합니다.

import fileinput

for line in fileinput.input(files=('file1.txt', 'file2.txt')):
    print(line, end='')

위 코드는 file1.txtfile2.txt의 내용을 한 줄씩 읽어들여 출력합니다. 이처럼 fileinput 모듈을 활용하면 파일의 수에 상관없이 쉽게 내용을 읽을 수 있습니다.

pickle 모듈을 활용한 파일 저장

pickle 모듈은 파이썬 객체를 파일로 저장하거나 파일에서 불러오는 데 사용됩니다. 이 모듈을 사용하면 복잡한 데이터 구조를 손쉽게 파일로 저장하고 복원할 수 있습니다.

사례 2: 객체 저장 및 불러오기

다음은 파이썬 객체를 저장하고 불러오는 간단한 예제입니다. 이 코드는 리스트를 파일에 저장하고, 나중에 다시 불러오는 과정을 보여줍니다.

import pickle

# 저장할 데이터
data = [1, 2, 3, 4, 5]

# 데이터 저장
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)

# 데이터 불러오기
with open('data.pkl', 'rb') as f:
    loaded_data = pickle.load(f)
    print(loaded_data)

위 코드는 리스트 [1, 2, 3, 4, 5]data.pkl 파일에 저장한 후, 다시 불러와 출력하는 과정입니다. pickle 모듈을 사용하면 복잡한 데이터 구조도 쉽게 저장하고 불러올 수 있습니다.

파일 입출력의 실용적인 팁

파일 입출력을 보다 효과적으로 수행하기 위한 5가지 실용적인 팁을 소개합니다.

팁 1: 파일 경로 관리

파일 경로를 하드코딩하는 대신, os.path 모듈을 사용하여 플랫폼에 따라 경로를 다르게 설정하는 것이 좋습니다. 이렇게 하면 코드의 이식성이 향상됩니다. 예를 들어:

import os

file_path = os.path.join('data', 'file.txt')

이 코드는 운영체제에 따라 적절한 파일 경로를 자동으로 생성합니다.

팁 2: 예외 처리

파일을 읽거나 쓸 때는 항상 예외 처리를 추가하는 것이 좋습니다. try-except 블록을 사용하여 파일이 없거나 접근 권한이 없는 경우를 대비할 수 있습니다.

try:
    with open('file.txt', 'r') as f:
        content = f.read()
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")

이렇게 하면 프로그램이 예기치 않게 종료되는 것을 방지할 수 있습니다.

팁 3: 파일 모드 이해하기

파일을 열 때 사용하는 모드('r', 'w', 'a' 등)의 의미를 이해하고 적절하게 사용하는 것이 중요합니다. 예를 들어, 'w' 모드는 기존 파일을 덮어쓰고, 'a' 모드는 파일의 끝에 내용을 추가합니다.

팁 4: 파일 포인터 위치 확인

파일을 읽거나 쓸 때 현재 파일 포인터의 위치를 확인하여 필요한 작업을 수행하는 것이 좋습니다. tell() 메소드를 사용하여 현재 위치를 확인할 수 있습니다.

with open('file.txt', 'r') as f:
    f.seek(0, 2)  # 파일 끝으로 이동
    print(f.tell())  # 현재 위치 출력

이렇게 하면 파일의 크기를 알 수 있어 유용합니다.

팁 5: 파일을 자동으로 닫기

파일을 열 때는 with 문을 사용하는 것이 좋습니다. 이 문을 사용하면 작업이 끝난 후 파일이 자동으로 닫혀 메모리 누수를 방지할 수 있습니다. 예를 들어:

with open('file.txt', 'r') as f:
    content = f.read()

이렇게 하면 파일을 수동으로 닫을 필요가 없어 코드가 간결해집니다.

요약 및 실천 팁


이번 글에서는 fileinputpickle 모듈을 사용하여 파일을 읽고 저장하는 다양한 방법을 소개했습니다. 파일 입출력은 데이터 처리를 위한 필수적인 작업이며, 위에서 소개한 실용적인 팁을 활용하면 코드의 안정성과 효율성을 높일 수 있습니다.

이제 여러분은 파일 입출력을 보다 효과적으로 활용할 수 있는 방법을 알게 되었습니다. 앞으로의 프로젝트에서 이러한 지식을 활용해 보시기 바랍니다. 파일 입출력을 잘 활용하면 데이터 관리가 훨씬 수월해질 것입니다.

반응형