Python04

Python(파이썬) 파일 입/출력 처리하기

파일 입출력이란?

프로그램에서 파일을 읽고 쓰는 작업을 파일 입/출력(File I/O)이라고 합니다. 파이썬에서는 다양한 유형의 파일을 손쉽게 처리할 수 있는 기능을 제공합니다. 이번 포스트에서는 텍스트 파일, CSV, JSON 파일 등의 입출력 방법에 대해 알아보겠습니다.

텍스트 파일 읽기/쓰기

텍스트 파일은 .txt 확장자를 가진 일반 텍스트 파일입니다. 파이썬에서는 open() 함수를 사용하여 파일을 열고, read(), write() 메서드로 파일을 읽거나 씁니다.

# 파일 읽기
file = open("data.txt", "r")
contents = file.read()
print(contents)
file.close()

# with 구문 (파일 자동 close)
with open("data.txt", "r") as file:
    contents = file.read()
    print(contents)

# 파일 쓰기
with open("output.txt", "w") as file:
    file.write("Hello, Python!")

open() 함수의 두 번째 인자로 "r" (읽기 모드), "w" (쓰기 모드), "a" (추가 모드) 등을 지정할 수 있습니다. with 구문을 사용하면 파일 객체를 자동으로 close할 수 있어 편리합니다.

CSV 파일 처리

CSV(Comma-Separated Values) 파일은 데이터를 행과 열로 구분하여 텍스트 형식으로 저장한 파일입니다. 파이썬에서는 csv 모듈을 통해 CSV 파일을 처리할 수 있습니다.

import csv

# CSV 파일 읽기
with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

# CSV 파일 쓰기
data = [
    ["Name", "Age", "City"],
    ["John", 30, "New York"],
    ["Jane", 25, "London"]
]

with open("output.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(data)

csv.reader() 함수를 사용하여 CSV 파일의 각 행을 리스트 형태로 읽어올 수 있습니다. csv.writer()는 리스트를 CSV 형식으로 파일에 쓰는 역할을 합니다.

JSON 파일 처리

JSON(JavaScript Object Notation)은 데이터를 교환하기 위한 텍스트 기반 데이터 포맷입니다. 파이썬에서는 json 모듈을 통해 JSON 파일을 처리할 수 있습니다.

import json

# JSON 파일 읽기
with open("data.json", "r") as file:
    data = json.load(file)
    print(data)

# JSON 파일 쓰기
person = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

with open("output.json", "w") as file:
    json.dump(person, file, indent=4)

json.load() 함수를 사용하여 JSON 파일의 데이터를 파이썬 객체(딕셔너리, 리스트 등)로 읽어올 수 있습니다. json.dump()는 파이썬 객체를 JSON 형식으로 파일에 씁니다.

파일 처리 예외 처리

파일 입출력 과정에서 예외 상황이 발생할 수 있습니다. 예를 들어 파일을 찾을 수 없거나 권한 문제 등으로 인한 예외가 발생할 수 있습니다. 이러한 예외 상황을 적절히 처리하는 것이 중요합니다.

try:
    file = open("nonexistent.txt", "r")
    contents = file.read()
    print(contents)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
except Exception as e:
    print(f"예외 발생: {e}")
finally:
    file.close()

try 블록에서 파일 처리 작업을 수행하고, except 블록에서 예외 상황을 처리합니다. 마지막으로 finally 블록에서 파일 객체를 close하여 리소스를 안전하게 해제합니다.

마무리

이번 포스트에서는 파이썬에서 텍스트 파일, CSV 파일, JSON 파일을 읽고 쓰는 방법과 예외 처리에 대해 알아보았습니다. 파일 입출력은 프로그램에서 데이터를 영구적으로 저장하고 로드하는 핵심적인 기능입니다.

파일 처리 시 주의할 점은 다음과 같습니다:

  • 파일 객체를 반드시 close해야 합니다.
  • 파일 경로를 올바르게 지정해야 합니다.
  • 예외 상황을 적절히 처리해야 합니다.

다음 포스트에서는 파이썬의 객체지향 프로그래밍 기초에 대해 살펴보겠습니다.

댓글남기기