파일 입출력, 왜 중요할까요?
프로그래밍에서 파일 입출력은 단순히 데이터를 읽고 쓰는 것을 넘어, 프로그램의 지속성을 확보하는 핵심 기술입니다. 파일 입출력을 통해 프로그램이 종료되어도 데이터를 안전하게 보존하고, 필요할 때 다시 불러와 사용할 수 있습니다. 이는 사용자에게 일관된 경험을 제공하고, 프로그램의 상태를 유지하는 데 필수적입니다. 파이썬은 파일 입출력을 위한 강력하고 편리한 기능을 제공하며, 이를 통해 개발자는 효율적으로 데이터를 관리할 수 있습니다.
1. 파일 열기: 데이터와의 만남을 시작하는 첫걸음
파일을 사용하기 전에 반드시 거쳐야 하는 단계가 바로 파일 열기입니다. 파이썬의 open()
함수는 파일 열기를 수행하며, 두 가지 중요한 인자를 받습니다.
- 파일 경로: 접근하려는 파일의 위치를 나타내는 문자열입니다. 절대 경로(예: "C:/myfolder/myfile.txt") 또는 상대 경로(예: "./myfile.txt")를 사용할 수 있습니다.
- 모드: 파일을 어떻게 사용할지 지정하는 문자열입니다.
모드 | 설명 |
---|---|
'r' | 읽기 모드 (기본값): 파일 내용을 읽기만 합니다. 파일이 없으면 오류 발생 |
'w' | 쓰기 모드: 파일 내용을 새로 작성합니다. 파일이 이미 존재하면 덮어쓰기 |
'a' | 추가 모드: 파일 끝에 새로운 내용을 추가합니다. 파일이 없으면 새로 생성 |
'b' | 바이너리 모드: 텍스트가 아닌 파일 (이미지, 비디오 등) 처리 시 사용 |
# 텍스트 파일 열기 (읽기 모드)
file = open('example.txt', 'r')
# 바이너리 파일 열기 (읽기 모드)
image_file = open('image.jpg', 'rb')
2. 파일 쓰기: 데이터 저장의 마법
파일에 데이터를 기록하는 가장 기본적인 방법은 write()
메서드를 사용하는 것입니다. 쓰기 모드('w') 로 파일을 열면 기존 내용은 모두 삭제되고 새로운 내용으로 덮어씌워집니다. 기존 내용을 유지하면서 새로운 내용을 추가하려면 추가 모드('a') 를 사용해야 합니다.
# 텍스트 파일에 쓰기 ('w' 모드: 기존 내용 삭제 후 새로운 내용 작성)
with open('example.txt', 'w') as file:
file.write("안녕하세요! 파이썬 파일 쓰기 예제입니다.\n")
file.write("두 번째 줄입니다.\n")
# 텍스트 파일에 내용 추가 ('a' 모드: 기존 내용 유지 후 내용 추가)
with open('example.txt', 'a') as file:
file.write("새로운 내용을 추가합니다.\n")
with
문을 사용하면 파일을 자동으로 닫아주므로, file.close()
를 명시적으로 호출할 필요가 없습니다.
3. 파일 읽기: 데이터 탐험 시작
파일에 저장된 데이터를 읽어오는 방법은 다양합니다. read()
, readline()
, readlines()
메서드를 활용하여 원하는 방식으로 데이터를 읽어올 수 있습니다.
read(size)
: 지정된 크기(바이트)만큼 파일 내용을 읽어 문자열로 반환합니다.size
생략 시 파일 전체 내용을 읽습니다.readline()
: 파일에서 한 줄을 읽어 문자열로 반환합니다. 파일 끝에 도달하면 빈 문자열 반환.readlines()
: 파일의 모든 줄을 읽어 각 줄을 문자열로 갖는 리스트로 반환합니다.
# 파일 전체 내용 읽기
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 파일에서 한 줄씩 읽기
with open('example.txt', 'r') as file:
line = file.readline()
while line:
print(line.strip()) # strip()으로 줄바꿈 문자 제거
line = file.readline()
# 파일의 모든 줄을 리스트로 읽기
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip())
4. 예외 처리: 예상치 못한 상황에 대비하는 현명한 자세
파일 입출력 작업은 예외가 발생하기 쉬운 부분입니다. 파일이 존재하지 않거나, 접근 권한이 없을 때 등 다양한 오류가 발생할 수 있습니다. try-except
블록을 사용하여 이러한 예외를 처리하는 것이 중요합니다.
try:
with open('non_existent_file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("오류: 파일이 존재하지 않습니다.")
except PermissionError:
print("오류: 파일 접근 권한이 없습니다.")
except Exception as e: # 모든 예외를 처리하는 경우
print(f"오류: {e}")
결론: 파일 입출력, 프로그래밍의 필수 스킬
파이썬의 파일 입출력 기능은 강력하고 유연하며, 프로그래밍에 필수적인 스킬입니다. 파일 입출력을 통해 데이터를 영구적으로 저장하고 관리하며, 프로그램의 지속성을 유지할 수 있습니다. 다양한 예제를 통해 파일 입출력 기능을 익히고, 예외 처리 기법을 숙지하여 안전하고 효율적인 프로그램을 개발하세요.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 에러와 예외 완벽 정복: try-except-finally 구문으로 안정적인 코드 만들기 (0) | 2025.02.23 |
---|---|
Python 예외 처리 완전 정복: 안정적인 프로그램 작성을 위한 필수 가이드 (0) | 2025.02.23 |
파이썬 파일 입출력 마스터하기: 완벽 가이드 (0) | 2025.02.23 |
파이썬 데이터 구조의 핵심: 집합(Set) 완벽 분석 및 활용 가이드 (0) | 2025.02.23 |
파이썬 데이터 구조의 핵심: 딕셔너리 심층 분석 및 활용법 (0) | 2025.02.23 |