개요
이번 강좌에서는 파이썬에서 파일 입출력을 활용하는 방법을 자세히 알아보겠습니다. 파일 입출력은 프로그램이 외부 파일과 데이터를 주고받으며 정보를 저장하거나 읽어오는 데 필수적인 기능입니다. 여기서는 파일을 여는 방법과 읽기, 쓰기 기능을 익히고, with문을 통해 안전하게 파일을 다루는 방법 및 CSV 파일을 처리하는 방법까지 단계별로 설명합니다. 각 예제 코드를 직접 실행해 보면서 파일 입출력의 기본 원리와 활용법을 익혀보시길 바랍니다.
파일 열기 (open())
파이썬에서 파일을 열 때는 open() 함수를 사용합니다.
이 함수는 파일 경로와 모드를 지정하여 파일 객체를 반환하며, 대표적인 모드로는 읽기 모드("r"), 쓰기 모드("w"), 추가 모드("a") 등이 있습니다.
파일 사용이 끝난 후에는 반드시 close() 메서드를 호출하여 파일을 닫아 주어야 합니다.
예제 코드:
# test.txt 파일을 읽기 모드("r")로 열기 예제
file = open("test.txt", "r") # 파일을 열어 file 객체에 저장
content = file.read() # 파일 전체 내용을 읽어서 변수에 저장
print("파일 내용:", content) # 읽은 내용 출력
file.close() # 파일을 닫아 리소스 해제
실행 결과 (예시):
파일 내용: Hello, Python!
읽기와 쓰기 (read(), write())
파일 객체를 통해 데이터를 읽거나 쓸 수 있습니다.
- read(): 파일의 전체 내용을 하나의 문자열로 읽어옵니다.
- write(): 파일에 문자열 데이터를 기록하며, 쓰기 모드로 열린 파일에만 사용됩니다.
예제 코드 (쓰기):
# test_write.txt 파일에 문자열 데이터를 기록하는 예제
file = open("test_write.txt", "w") # 쓰기 모드("w")로 파일 열기
file.write("Hello, Python!\n파이썬 파일 입출력 예제입니다.") # 문자열 기록
file.close() # 파일 닫기
예제 코드 (읽기):
# 작성한 test_write.txt 파일의 내용을 읽어오는 예제
file = open("test_write.txt", "r") # 읽기 모드("r")로 파일 열기
content = file.read() # 파일 내용을 읽어서 변수에 저장
print("작성한 파일 내용:")
print(content) # 읽은 내용 출력
file.close() # 파일 닫기
실행 결과 (예시):
작성한 파일 내용:
Hello, Python!
파이썬 파일 입출력 예제입니다.
with문을 이용한 파일 처리
with문을 사용하면 파일을 열고 작업한 후 자동으로 파일을 닫아 주기 때문에, 파일 처리를 보다 안전하고 간편하게 할 수 있습니다.
파일 작업 중 예외가 발생해도 with문이 종료될 때 파일이 자동으로 닫히므로, 리소스 누수를 방지할 수 있습니다.
예제 코드 (읽기):
# with문을 사용하여 test.txt 파일 읽기 예제
with open("test.txt", "r") as file:
content = file.read() # 파일의 전체 내용을 읽음
print("with문을 이용하여 읽은 파일 내용:", content)
예제 코드 (쓰기):
# with문을 사용하여 test_write.txt 파일에 내용 기록 예제
with open("test_write.txt", "w") as file:
file.write("with문으로 파일 쓰기 예제입니다.\n안전하게 파일을 처리합니다.")
실행 결과 (예시):
with문을 이용하여 읽은 파일 내용: Hello, Python!
CSV 파일 다루기 (csv 모듈)
CSV(Comma-Separated Values) 파일은 데이터를 콤마로 구분하여 저장하는 간단한 파일 형식입니다.
파이썬의 내장 csv 모듈을 사용하면 CSV 파일을 쉽게 읽고 쓸 수 있습니다.
csv.writer와 csv.reader를 사용하여 각각 CSV 파일에 데이터를 기록하고, 파일로부터 데이터를 읽어올 수 있습니다.
예제 코드 (CSV 쓰기):
import csv
# sample.csv 파일에 데이터 기록 예제
with open("sample.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["이름", "나이", "도시"]) # CSV 헤더 기록
writer.writerow(["홍길동", 25, "서울"]) # 첫 번째 데이터 행
writer.writerow(["이순신", 30, "부산"]) # 두 번째 데이터 행
예제 코드 (CSV 읽기):
import csv
# sample.csv 파일로부터 데이터 읽기 예제
with open("sample.csv", "r", newline="") as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print("CSV 행:", row)
실행 결과 (예시):
CSV 행: ['이름', '나이', '도시']
CSV 행: ['홍길동', '25', '서울']
CSV 행: ['이순신', '30', '부산']
참고:
- newline="" 옵션은 CSV 파일을 읽거나 쓸 때 불필요한 빈 줄이 생기는 문제를 방지하기 위해 사용됩니다.
- CSV 파일은 간단한 데이터 저장 및 교환에 매우 유용하며, 다양한 라이브러리와 연계하여 데이터를 분석할 때도 널리 사용됩니다.
정리
- 파일 열기: open() 함수를 이용해 파일을 열며, 모드에 따라 읽기("r"), 쓰기("w"), 추가("a") 등이 있습니다.
- 읽기와 쓰기: read()로 파일 내용을 읽고, write()로 데이터를 파일에 기록할 수 있습니다.
- with문 활용: with문을 사용하면 파일을 열고 자동으로 닫아 주어 안전한 파일 처리가 가능합니다.
- CSV 파일 처리: csv 모듈을 활용해 CSV 파일의 데이터를 쉽게 읽고 쓸 수 있으며, writer와 reader를 사용합니다.
'개발 > Python' 카테고리의 다른 글
[Python 파이썬] 12. 객체 지향 프로그래밍 (OOP) (0) | 2025.02.15 |
---|---|
[Python 파이썬] 11. 예외 처리 (0) | 2025.02.14 |
[Python 파이썬] 9. 모듈과 패키지 (0) | 2025.02.12 |
[Python 파이썬] 8. 함수의 이해와 활용 (0) | 2025.02.11 |
[Python 파이썬] 7. 데이터 구조: 딕셔너리와 세트 (0) | 2025.02.10 |