프로그래밍/Python

파이썬 파일 입출력 완벽 가이드: 데이터 저장과 활용의 모든 것

shimdh 2025. 2. 25. 13:38
728x90

파일 입출력(File I/O)은 프로그래밍에서 데이터를 저장하고 불러오는 핵심 기능입니다. 프로그램이 실행될 때마다 데이터를 직접 입력하는 것은 비효율적이며, 파일을 활용하면 데이터를 영속적으로 저장하고 재사용할 수 있습니다.

파이썬은 직관적인 파일 처리 기능을 제공하여 텍스트 파일, CSV 파일, JSON 파일, 바이너리 파일 등 다양한 데이터를 쉽게 다룰 수 있도록 지원합니다. 이번 글에서는 파일을 여는 방법부터 데이터를 읽고 쓰는 방법, 그리고 실전에서 활용할 수 있는 다양한 파일 입출력 기법까지 자세히 알아보겠습니다.


1. 파일 입출력 기본 개념

1.1 파일 입출력이란?

파일 입출력(File I/O, Input/Output) 은 프로그램이 외부 저장소(예: 하드 드라이브, SSD)와 데이터를 주고받는 과정입니다. 이를 통해 프로그램 간에 데이터를 공유할 수 있으며, 사용자가 직접 입력하지 않아도 데이터를 유지할 수 있습니다.

1.2 open() 함수와 파일 모드

파이썬에서 파일을 열기 위해 open() 함수를 사용합니다. 파일을 열 때는 파일 모드(mode) 를 지정하여 읽기, 쓰기, 추가 등의 작업을 결정할 수 있습니다.

file = open('파일명', '모드')
모드 설명
'r' 읽기 모드 (기본값, 파일이 존재하지 않으면 오류 발생)
'w' 쓰기 모드 (파일이 존재하면 기존 내용을 삭제)
'a' 추가 모드 (기존 내용 유지, 새로운 내용 추가)
'b' 바이너리 모드 (이미지, 오디오, 동영상 파일 처리)
'r+' 읽기 및 쓰기 모드 (기존 내용 유지)
'w+' 읽기 및 쓰기 모드 (파일이 존재하면 기존 내용 삭제)
'a+' 읽기 및 추가 모드 (기존 내용 유지, 새로운 내용 추가)

2. 파일 쓰기 (Writing to a File)

파일에 데이터를 저장하는 것은 매우 간단하며, write() 또는 writelines() 메서드를 사용하면 됩니다.

2.1 텍스트 파일 쓰기

'w' 모드로 파일을 열면, 기존 파일이 있을 경우 기존 내용이 삭제되므로 주의해야 합니다.

# 파일 생성 및 내용 작성
with open('example.txt', 'w') as file:
    file.write('안녕하세요, 파이썬 파일 입출력!\n')
    file.writelines(['첫 번째 줄\n', '두 번째 줄\n'])

writelines() 메서드는 리스트 형태로 여러 줄을 한 번에 저장할 수 있습니다.

2.2 추가 모드('a')를 활용한 데이터 추가

'a'(append) 모드를 사용하면 기존 파일 내용을 유지하면서 새로운 내용을 추가할 수 있습니다.

# 기존 파일에 내용 추가
with open('example.txt', 'a') as file:
    file.write('새로운 줄이 추가됩니다!\n')

3. 파일 읽기 (Reading from a File)

파일을 읽을 때는 여러 가지 방법이 있으며, 파일의 전체 내용을 읽거나 특정 부분만 읽을 수도 있습니다.

3.1 read() 메서드를 활용한 전체 내용 읽기

# 파일 전체 읽기
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

3.2 readline()을 사용하여 한 줄씩 읽기

# 파일을 한 줄씩 읽기
with open('example.txt', 'r') as file:
    line = file.readline()  # 첫 번째 줄만 읽음
    print(line.strip())  # 줄바꿈 제거 후 출력

3.3 readlines()를 사용하여 모든 줄을 리스트로 반환

# 모든 줄을 리스트 형태로 가져오기
with open('example.txt', 'r') as file:
    lines = file.readlines()

for line in lines:
    print(line.strip())  # 줄바꿈 제거 후 출력

4. CSV 파일 처리

CSV(Comma-Separated Values) 파일은 데이터를 표 형식으로 저장하는 대표적인 방식입니다. 파이썬에서는 csv 모듈을 활용하여 손쉽게 데이터를 읽고 쓸 수 있습니다.

4.1 CSV 파일 작성

import csv

# CSV 파일 작성
data = [['이름', '나이'], ['홍길동', '30'], ['김철수', '25']]

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

4.2 CSV 파일 읽기

import csv

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

출력 결과:

['이름', '나이']
['홍길동', '30']
['김철수', '25']

5. JSON 파일 읽고 쓰기

JSON(JavaScript Object Notation)은 데이터를 구조화된 형식으로 저장하는 인기 있는 포맷입니다. 파이썬에서는 json 모듈을 사용하여 JSON 파일을 쉽게 다룰 수 있습니다.

5.1 JSON 파일 저장

import json

# JSON 데이터
data = {"이름": "홍길동", "나이": 30, "도시": "서울"}

# JSON 파일 저장
with open('data.json', 'w') as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

5.2 JSON 파일 읽기

import json

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

print(loaded_data)

6. 정리: 파일 입출력의 핵심 포인트

파일을 열 때 open() 함수를 사용하고 적절한 모드를 선택해야 합니다.
파일 작업 후에는 반드시 닫아야 하며, with 문을 사용하면 자동으로 닫힙니다.
파일 읽기와 쓰기에서 read(), readline(), readlines() 등의 메서드를 적절히 활용해야 합니다.
CSV 및 JSON 파일 처리를 위한 csvjson 모듈을 사용할 수 있습니다.

파일 입출력은 실전 프로그래밍에서 데이터를 저장하고 불러오는 가장 기본적인 기술 중 하나입니다. 이를 잘 활용하면 데이터를 효율적으로 관리할 수 있으며, 프로그램의 기능을 확장하는 데도 큰 도움이 됩니다. 앞으로 파일을 다룰 때 위의 내용을 활용하여 더욱 안정적인 코드를 작성해 보세요! 🚀


Meta description:

파이썬에서 파일 입출력을 다루는 방법을 배워보세요. open(), read(), write(), CSV 및 JSON 데이터 처리까지 실전 예제로 완벽 가이드!

HASHTAGS:

#파이썬 #파일입출력 #Python #프로그래밍 #코딩 #개발자팁 #소프트웨어개발 #데이터처리 #CSV #JSON## 파이썬 파일 입출력 완벽 가이드: 읽기, 쓰기, CSV, JSON 실전 활용

파일 입출력(File I/O)은 데이터를 저장하고 불러오는 필수적인 기능으로, 프로그램 간 데이터 공유와 영속적 저장을 가능하게 합니다.

파이썬은 강력하고 직관적인 파일 처리 기능을 제공하며, 이를 활용하면 텍스트 파일, CSV 파일, JSON 파일, 바이너리 파일 등 다양한 데이터를 쉽게 다룰 수 있습니다.

이번 글에서는 파일을 여는 방법부터 데이터를 읽고 쓰는 방법, 그리고 CSV 및 JSON 파일 처리까지 실전에서 자주 사용하는 기법을 중심으로 자세히 알아보겠습니다.


1. 파일 입출력 기본 개념

1.1 파일 입출력이란?

파일 입출력(File I/O, Input/Output)이란 프로그램이 외부 저장소(예: 하드 드라이브, SSD, 네트워크 스토리지 등) 와 데이터를 주고받는 과정입니다. 이를 통해 프로그램 간 데이터 공유가 가능하며, 사용자 입력 없이도 데이터를 유지할 수 있습니다.

1.2 open() 함수와 파일 모드

파일을 사용하려면 먼저 파일을 열어야 하며, 이를 위해 open() 함수를 사용합니다. 파일을 열 때는 파일 모드(mode) 를 지정하여 읽기 또는 쓰기 등의 작업을 결정할 수 있습니다.

file = open('파일명', '모드')
모드 설명
'r' 읽기 모드 (파일이 존재하지 않으면 오류 발생)
'w' 쓰기 모드 (파일이 존재하면 기존 내용을 삭제)
'a' 추가 모드 (기존 내용 유지, 새로운 내용 추가)
'b' 바이너리 모드 (이미지, 오디오, 동영상 파일 처리)
'r+' 읽기 및 쓰기 모드 (기존 내용 유지)
'w+' 읽기 및 쓰기 모드 (파일이 존재하면 기존 내용 삭제)
'a+' 읽기 및 추가 모드 (기존 내용 유지, 새로운 내용 추가)

2. 파일 쓰기 (Writing to a File)

파일에 데이터를 저장하는 방법은 매우 간단하며, write() 또는 writelines() 메서드를 사용하면 됩니다.

2.1 텍스트 파일 쓰기

파일을 쓰기('w' 모드)로 열면, 기존 파일이 있을 경우 기존 내용이 삭제되므로 주의해야 합니다.

# 파일 생성 및 내용 작성
with open('example.txt', 'w') as file:
    file.write('안녕하세요, 파이썬 파일 입출력!\n')
    file.writelines(['첫 번째 줄\n', '두 번째 줄\n'])

위 코드는 example.txt라는 텍스트 파일을 생성하고, 문자열을 저장하는 코드입니다. writelines() 메서드는 리스트 형태로 여러 줄을 한 번에 저장할 수 있습니다.

2.2 추가 모드('a')를 활용한 데이터 추가

'a'(append) 모드를 사용하면 기존 파일 내용을 유지하면서 새로운 내용을 추가할 수 있습니다.

# 기존 파일에 내용 추가
with open('example.txt', 'a') as file:
    file.write('새로운 줄이 추가됩니다!\n')

위 코드 실행 후 example.txt에는 기존 내용이 유지된 채 새로운 줄이 추가됩니다.


3. 파일 읽기 (Reading from a File)

파일을 읽을 때는 여러 가지 방법이 있으며, 파일의 전체 내용을 읽거나 특정 부분만 읽을 수도 있습니다.

3.1 read() 메서드를 활용한 전체 내용 읽기

# 파일 전체 읽기
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

3.2 readline()을 사용하여 한 줄씩 읽기

# 파일을 한 줄씩 읽기
with open('example.txt', 'r') as file:
    line = file.readline()  # 첫 번째 줄만 읽음
    print(line.strip())  # 줄바꿈 제거 후 출력

3.3 readlines()를 사용하여 모든 줄을 리스트로 반환

# 모든 줄을 리스트 형태로 가져오기
with open('example.txt', 'r') as file:
    lines = file.readlines()

for line in lines:
    print(line.strip())  # 줄바꿈 제거 후 출력

4. CSV 파일 처리

CSV(Comma-Separated Values) 파일은 데이터를 표 형식으로 저장하는 대표적인 방식입니다. 파이썬에서는 csv 모듈을 활용하여 손쉽게 데이터를 읽고 쓸 수 있습니다.

4.1 CSV 파일 작성

import csv

# CSV 파일 작성
data = [['이름', '나이'], ['홍길동', '30'], ['김철수', '25']]

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

위 코드는 data.csv라는 CSV 파일을 생성하고, 리스트 데이터를 표 형식으로 저장하는 예제입니다.

4.2 CSV 파일 읽기

import csv

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

위 코드 실행 결과는 다음과 같습니다.

['이름', '나이']
['홍길동', '30']
['김철수', '25']

5. JSON 파일 읽고 쓰기

JSON(JavaScript Object Notation)은 데이터를 구조화된 형식으로 저장하는 인기 있는 포맷입니다. 파이썬에서는 json 모듈을 사용하여 JSON 파일을 쉽게 다룰 수 있습니다.

5.1 JSON 파일 저장

import json

# JSON 데이터
data = {"이름": "홍길동", "나이": 30, "도시": "서울"}

# JSON 파일 저장
with open('data.json', 'w') as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

5.2 JSON 파일 읽기

import json

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

print(loaded_data)

6. 정리: 파일 입출력의 핵심 포인트

파일을 열 때 open() 함수를 사용하고 적절한 모드를 선택해야 합니다.
파일 작업 후에는 반드시 닫아야 하며, with 문을 사용하면 자동으로 닫힙니다.
파일 읽기와 쓰기에서 read(), readline(), readlines() 등의 메서드를 적절히 활용해야 합니다.
CSV 및 JSON 파일 처리를 위한 csvjson 모듈을 사용할 수 있습니다.

파일 입출력은 실전 프로그래밍에서 데이터를 저장하고 불러오는 가장 기본적인 기술 중 하나입니다. 이를 잘 활용하면 데이터를 효율적으로 관리할 수 있으며, 프로그램의 기능을 확장하는 데도 큰 도움이 됩니다. 앞으로 파일을 다룰 때 위의 내용을 활용하여 더욱 안정적인 코드를 작성해 보세요! 🚀

728x90