반응형
Python을 활용한 자동화나 데이터 처리 작업에서 파일 입출력은 가장 기본적인 기능 중 하나입니다. 텍스트 파일을 읽거나, 새로운 파일을 생성하여 데이터를 저장하는 등의 작업을 할 때는 open(), read(), write() 함수 등을 사용합니다. 이번 포스팅에서는 Python에서 파일을 읽고 쓰는 기본적인 방법과, 자주 발생하는 실수 및 오류를 함께 정리해보겠습니다.
1. 파일 열기: open() 함수
1. 기본 구조
open(file, mode='r', encoding=None)
- file: 파일 경로
- mode: 동작 모드 ('r', 'w', 'a', 'b' 등)
- encoding: 텍스트 인코딩 (한글 파일에는 'utf-8' 권장)
2. 모드 종류
모드 | 설명 |
'r' | 읽기 전용 (기본값, 파일이 없으면 오류 발생) |
'w' | 쓰기 전용 (기존 파일 덮어씀) |
'a' | 추가 모드 (기존 내용 뒤에 추가) |
'b' | 바이너리 모드 (이미지, 동영상 등) |
2. 파일 읽기 방법
1. read()
파일 전체를 하나의 문자열로 읽음
with open("example.txt", "r", encoding="utf-8") as f:
data = f.read()
print(data)
2. readline()
한 줄씩 읽기 (한 번에 한 줄)
with open("example.txt", "r", encoding="utf-8") as f:
line = f.readline()
print(line)
3. readlines()
전체 줄을 리스트로 읽기
with open("example.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
print(line.strip())
터미널 출력 예시 (example.txt 내용: 'Hello\nPython')
Hello
Python
3. 파일 쓰기 방법
1. write() - 텍스트 쓰기
with open("output.txt", "w", encoding="utf-8") as f:
f.write("파이썬 파일 쓰기 예제입니다.\n")
f.write("두 번째 줄입니다.")
2. writelines() - 리스트 여러 줄 쓰기
lines = ["첫째 줄\n", "둘째 줄\n", "셋째 줄\n"]
with open("output2.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
3. 'a' 모드로 내용 추가
with open("output.txt", "a", encoding="utf-8") as f:
f.write("\n추가된 줄입니다.")
터미널 확인
$ cat output.txt
파이썬 파일 쓰기 예제입니다.
두 번째 줄입니다.
추가된 줄입니다.
4. 자주 발생하는 오류 및 해결 방법
1. FileNotFoundError
- 존재하지 않는 파일을 'r' 모드로 열려고 할 때 발생
f = open("없는파일.txt", "r") # 오류 발생
해결 방법
- 파일 경로 확인 또는 try-except 사용
2. UnicodeDecodeError
- 인코딩 방식이 맞지 않을 때 발생
with open("example.txt", "r") as f:
data = f.read() # 오류 가능
해결 방법
- 인코딩을 명시적으로 지정 (encoding='utf-8')
3. close() 누락
- 파일을 열고 닫지 않으면 메모리 누수 가능
- 해결 방법: with open() 구문을 사용하여 자동으로 닫기
5. 추가 팁 및 참고 사항
- 파일 경로는 절대 경로 또는 상대 경로 모두 사용 가능
- 파일이 있는지 확인할 땐 os.path.exists()를 활용
import os
print(os.path.exists("example.txt")) # True or False
- 여러 줄 데이터를 쓸 때는 리스트로 구성 후 writelines() 사용하면 편리함
6. 요약 및 마무리
이번 포스팅에서는 Python에서 파일을 읽고 쓰는 기본적인 방법을 다뤘습니다. open() 함수로 파일을 열고, read(), write(), readlines() 등의 함수로 데이터를 읽거나 저장할 수 있습니다. 또한, with 구문을 통해 안전하게 파일을 다루는 습관도 중요합니다. 파일 입출력은 실무에서 자주 활용되는 기능이므로, 오류 메시지와 사용법을 정확히 익혀두는 것이 좋습니다.
7. 관련 글 링크
- 관련 글: Python의 try, except 예외 처리 문법과 실전 예제
반응형
'파이썬' 카테고리의 다른 글
[Python] try, except 예외 처리 문법과 실전 예제 (0) | 2025.04.04 |
---|---|
[Python] list, set, tuple, dict 차이점과 선택 기준 (0) | 2025.04.03 |
[Python] ValueError 오류가 발생하는 원인과 해결 방법 (0) | 2025.04.03 |
[Python] range() 함수 사용법과 for문에서의 활용 예제 (0) | 2025.04.01 |
[Python] TypeError: unsupported operand type(s) 오류 해결하기 (0) | 2025.04.01 |
댓글