[Python] 파이썬 파일(File) 입출력 완벽 가이드: 데이터 저장 및 관리의 핵심, 초보자도 쉽게 이해하는 방법
파이썬 파일(File) 입출력 완벽 가이드: 데이터 저장 및 관리의 핵심, 초보자도 쉽게 이해하는 방법
파이썬은 파일을 읽고 쓰는 기능을 제공하여 데이터를 영구적으로 저장하고 관리할 수 있도록 지원합니다. 파일 입출력은 프로그램이 외부 데이터와 상호작용하는 데 필수적인 요소입니다. 이 글에서는 파이썬 파일 입출력의 개념, 사용법, 다양한 활용법을 예제 코드와 함께 자세히 설명합니다.
1. 파일 입출력 기본 개념
파일 입출력은 다음과 같은 단계를 거쳐 수행됩니다.
- 파일 열기:
open()
함수를 사용하여 파일을 열고 파일 객체를 생성합니다. - 파일 읽기/쓰기: 파일 객체의 메서드를 사용하여 데이터를 읽거나 씁니다.
- 파일 닫기:
close()
메서드를 사용하여 파일을 닫고 자원을 해제합니다.
2. 파일 열기: open() 함수
open()
함수는 파일을 열고 파일 객체를 반환합니다.
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file
: 파일 경로를 나타내는 문자열입니다.mode
: 파일 열기 모드를 나타내는 문자열입니다. 주요 모드는 다음과 같습니다.'r'
: 읽기 모드 (기본값)'w'
: 쓰기 모드 (기존 내용 삭제)'a'
: 추가 모드 (기존 내용 뒤에 추가)'b'
: 바이너리 모드't'
: 텍스트 모드 (기본값)'+'
: 읽기/쓰기 모드
f = open("my_file.txt", "r") # 읽기 모드로 파일 열기
f = open("my_file.txt", "w") # 쓰기 모드로 파일 열기
3. 파일 읽기: read(), readline(), readlines()
read()
: 파일 전체 내용을 하나의 문자열로 읽어옵니다.readline()
: 파일에서 한 줄을 읽어옵니다.readlines()
: 파일 전체 내용을 줄 단위로 나누어 리스트로 읽어옵니다.
f = open("my_file.txt", "r")
content = f.read()
print(content)
f = open("my_file.txt", "r")
line = f.readline()
print(line)
f = open("my_file.txt", "r")
lines = f.readlines()
print(lines)
4. 파일 쓰기: write(), writelines()
write()
: 문자열을 파일에 씁니다.writelines()
: 문자열 리스트를 파일에 씁니다.
f = open("my_file.txt", "w")
f.write("Hello, World!\n")
f.writelines(["Line 1\n", "Line 2\n"])
5. 파일 닫기: close()
close()
메서드를 사용하여 파일을 닫고 자원을 해제합니다.
f = open("my_file.txt", "r")
# 파일 처리 코드
f.close()
with
문을 사용하면 파일을 자동으로 닫을 수 있습니다.
with open("my_file.txt", "r") as f:
content = f.read()
print(content)
6. 파일 입출력 활용 예시
6.1. 텍스트 파일 읽고 쓰기
with open("input.txt", "r") as input_file, open("output.txt", "w") as output_file:
for line in input_file:
output_file.write(line.upper())
6.2. CSV 파일 읽고 쓰기
import csv
with open("data.csv", "r") as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
print(row)
with open("data.csv", "w", newline="") as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow(["Name", "Age", "City"])
csv_writer.writerow(["John", "30", "New York"])
7. 바이너리 파일 입출력
바이너리 파일은 텍스트 파일과 달리 데이터를 바이너리 형태로 저장합니다. 바이너리 파일을 다룰 때는 open()
함수의 mode
매개변수에 'b'
를 추가합니다.
with open("image.jpg", "rb") as f:
image_data = f.read()
with open("image_copy.jpg", "wb") as f:
f.write(image_data)
8. 결론
파이썬 파일 입출력은 데이터를 영구적으로 저장하고 관리하는 데 필수적인 기능입니다. open()
, read()
, write()
, close()
함수와 with
문을 활용하여 텍스트 파일, CSV 파일, 바이너리 파일 등 다양한 형식의 파일을 다루고, 효율적인 데이터 관리 시스템을 구축할 수 있습니다.