AI 헬스케어 3기 데이터 분석 코스 Python (6)
구글 Colab를 이용해서 환자 정보와 관련된 파일을 업로드 및 입출력하는 내용이어서
개인 정보 문제가 없냐고 질문했는데 확실한 답을 듣지 못했다.
개인에 건강에 관한 정보는 개인 정보이고 또
그 특성상 함부로 공유하거나 훼손되어서는
안되기 때문에 민감하게 다뤄진다.
Python 수업의 일부로 들었지만 정보가 함부로 공유되거나 거래되지 않을 것이라고
가정하고 거를 필요가 있어 보인다.
파일 입출력 & 예외 처리
파일 입출력
파일 입출력은 프로그램에서 외부 파일에 데이터를 저장하거나 읽어오는 작업입니다.
메모리에 있는 데이터는 프로그램이 종료되면 사라지지만, 파일에 저장하면
영구적으로 보존됩니다.
파일 입출력의 필요성
파일 입출력은 프로그램과 외부 파일 간의 데이터 교환을 통해 정보를 영구적으로
보존하고 공유할 수 있게 해줍니다.
open() 함수
open() 함수를 사용하여 파일을 열고, 모드를 지정하여 어떤 작업을 할지 결정합니다.
# 기본 문법
file = open('파일명.txt', '모드', encoding='utf-8')
# 파일 작업 수행
file.close() # 반드시 닫아야 함
파일 모드
파일 모드는 파일을 열 때 어떤 작업을 할지 결정하는 옵션입니다.
주요 파일 모드
'r': 읽기 모드 (기본값) - 기존 파일 내용을 읽음
'w': 쓰기 모드 - 새로운 내용으로 덮어쓰기 (기존 내용 삭제)
'a': 추가 모드 - 기존 내용 뒤에 새로운 내용 추가
'r+': 읽기/쓰기 모드 - 파일을 읽고 수정
close() 메서드
파일 작업이 끝나면 반드시 close() 메서드로 파일을 닫아야 합니다.
파일을 닫지 않으면 메모리 누수가 발생하고 다른 프로그램에서 해당 파일에 접근하지 못할 수 있습니다.
# 검사 결과 파일 생성
test_file = open('blood_test.txt', 'w', encoding='utf-8')
test_results = "혈당: 95mg/dL\n콜레스테롤: 180mg/dL\n혈압: 120/80mmHg" # 검사 결과 데이터
test_file.write(test_results)
test_file.close() # 파일 닫기 - 매우 중요!
print("검사 결과 파일이 저장되었습니다.")
## 🔒 with 문 - 권장
**with 문은** 파일을 자동으로 닫아주는 안전한 파일 처리 방법입니다.
with 구문의 필요성
# ❌ 위험한 방법
patient_file = open('patient_info.txt', 'w', encoding='utf-8')
# 오류 발생 시 파일이 닫히지 않을 수 있음!
patient_file.write("환자 정보")
patient_file.close()
# ✅ 안전한 방법
with open('patient_info.txt', 'w', encoding='utf-8') as file:
file.write("환자 정보")
# 자동으로 파일이 닫힘
자동 파일 닫기 보장
파일 읽기 - read()
파일의 내용을 다양한 방법으로 읽을 수 있습니다.
파일 쓰기 - write()
파일에 다양한 방법으로 저장할 수 있습니다.
텍스트 파일 다루기
파일 경로 지정
파일 경로는 파일이 저장될 위치를 지정하는 방법입니다.
상대 경로와 절대 경로를 이해하고 적절히 활용해야 합니다.
인코딩 지정 (UTF-8)
인코딩은 텍스트를 컴퓨터가 이해할 수 있는 바이트로 변환하는 방식입니다.
한글이 포함된 의료 데이터를 처리할 때는 반드시 UTF-8 인코딩을 지정해야 합니다.
예외 처리
예외 처리는 프로그램 실행 중 발생할 수 있는 오류를
적절히 처리하여 시스템 안정성을 보장하는 방법입니다.
try-except 구문
try-except 구문은 예외가 발생할 수 있는 코드를 안전하게 실행하기 위한 방법입니다.
try 블록에서 오류가 발생하면 except 블록이 실행되어 프로그램이 중단되지 않습니다.
with open("aaa.txt","r",encoding="utf-8") as file:
file.read()
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
/tmp/ipython-input-1478236273.py in <cell line: 0>()
----> 1 with open("aaa.txt","r",encoding="utf-8") as file:
2 file.read()
FileNotFoundError: [Errno 2] No such file or directory: 'aaa.txt'
try:
with open("aaa.txt","r",encoding="utf-8") as file:
file.read()
except ValueError:
print("숫자로 제대로 입력하세요")
except FileNotFoundError:
print("파일명을 확인해 주세요")
파일명을 확인해 주세요
finally 블록
finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 코드 블록입니다.
파일 닫기, 리소스 정리 등 반드시 실행되어야 하는 작업에 사용됩니다.
다양한 예외 타입
FileNotFoundError
PermissionError
ValueError
파일 관련 예외 처리
파일 작업 시 자주 발생하는 예외 타입들을 이해하고
적절히 처리하는 것이 중요합니다.
사용자 친화적 오류 메시지

댓글
댓글 쓰기