1. 파일 열기와 닫기
파이썬은 open() 함수를 사용해 파일을 열고, 작업이 끝나면 close()로 닫는다.
f = open("example.txt", "w", encoding="utf-8")
f.write("Hello File I/O")
f.close()
open("파일명", "모드", encoding="utf-8")close(): 파일 리소스를 반드시 해제해야 함
파일 모드 종류
"r": 읽기 (기본값)"w": 쓰기 (기존 내용 삭제 후 새로 작성)"a": 추가 (기존 내용 뒤에 이어쓰기)"b": 바이너리 모드 (이미지, 동영상 등 텍스트가 아닌 파일)
2. with문을 이용한 파일 처리
파일을 열고 닫는 과정을 자동으로 처리할 수 있다.
with open("example.txt", "w", encoding="utf-8") as f:
f.write("Hello with")
# 블록 종료 시 자동으로 close() 실행
3. 파일 쓰기
3.1 한 줄 쓰기
with open("example.txt", "w", encoding="utf-8") as f:
f.write("첫 번째 줄\n")
f.write("두 번째 줄\n")
3.2 여러 줄 쓰기
lines = ["Python\n", "AI\n", "IoT\n"]
with open("example.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
write(): 문자열 하나 쓰기writelines(): 문자열 리스트를 한 번에 쓰기
4. 파일 읽기
4.1 파일 전체 읽기
with open("example.txt", "r", encoding="utf-8") as f:
data = f.read()
print(data)
4.2 한 줄씩 읽기
with open("example.txt", "r", encoding="utf-8") as f:
line1 = f.readline()
line2 = f.readline()
print(line1, line2)
4.3 모든 줄 읽기 (리스트 반환)
with open("example.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
print(line.strip())
read(): 전체 내용 읽기readline(): 한 줄씩 읽기readlines(): 모든 줄을 리스트로 반환
5. 파일 포인터
파일은 내부적으로 읽기/쓰기 위치를 기억하는 포인터를 가진다.
with open("example.txt", "r", encoding="utf-8") as f:
print(f.tell()) # 현재 위치 확인
f.seek(0) # 파일의 처음으로 이동
print(f.readline()) # 첫 줄 읽기
tell(): 현재 포인터 위치 반환seek(offset): 포인터를 특정 위치로 이동
6. 파일 복사 예제
with open("source.txt", "r", encoding="utf-8") as src:
with open("copy.txt", "w", encoding="utf-8") as dst:
for line in src:
dst.write(line)
- 한 줄씩 읽어 새로운 파일에 기록
- 대용량 파일도 효율적으로 처리 가능