(Python 5-1강) File / Exception / Log Handling
210804
Exception
예외에는 예상이 가능하거나 불가능하다.
예상 가능한 예외
발생 여부를 사전에 인지할 수 있는 예외
사용자의 잘못된 입력, 파일 호출 시 파일 없음
개발자가 반드시 명시적으로 정의 해야함
예상 불가능한 예외
인터프리터 과정에서 발생하는 예외, 개발자 실수
리스트의 범위를 넘어가는 값 호출, 정수 0으로 나눔
수행 불가시 인터프리터가 자동 호출ㅇ
예상이 가능하면 if문으로 조건을 달아주면 된다. 예상이 불가능 하다면? => Exception Handling
Exception Handling
try - except 문법
try:
예외 발생 가능 코드
except <Exception Type>:
예외 발생시 대응하는 코드try-except-finally 문법
Exception의 종류
Built-in Exception: 기본적으로 제공하는 예외
IndexError : List의 Index 범위 초과
NameError : 존재하지 않는 변수 호출
ZeroDivisionError : 0으로 숫자를 나눌 때
Value Error : 변환할 수 없는 문자/숫자 변환할 때
FileNotFoundError : 존재하지 않는 파일을 호출할 때
그 외에도 제공되는 예외가 굉장히 많다
예외 정보 표시하기
raise 구문
필요에 따라 강제로 Exception을 발생시킨다.
assert 구문
특정 조건에 만족하지 않을 경우 예외 발생
File Handling
파일의 종류
기본적인 파일 종류로는 text 파일과 binary 파일로 나뉜다.
모든 텍스트 파일도 실제로는 바이너리 파일이다.
컴퓨터는 텍스트 파일을 처리하기 위해 바이너리 파일로 변환시킨다.
text 파일
인간도 이해할 수 있는 형태인 문자열 형식으로 저장된 파일
메모장으로 열면 내용 확인 가능
메모장에 저장된 파일, HTML 파일, 파이썬 코드 파일 등
binary 파일
컴퓨터만 이해할 수 있는 형태인
이진(법)형식으로 저장된 파일
일반적으로 메모장으로 열면
내용이 깨져 보임 (메모장 해설 불가)
엑셀파일, 워드 파일 등등
Python File I/O
w, 쓰기모드의 경우 encoding 방식을 utf8과 cp949 등의 방법으로 정할 수 있다. 협업할 때는 이를 통일하는게 좋다.
또, w는 기존 파일을 덮어쓰기 떄문에 주의가 필요하다.
a, 추가모드는 기존 파일의 마지막부터 이어서 붙이게 된다.
Directory 다루기
디렉토리 생성
디렉토리 존재 여부 확인
경로 연결하기
이 때 문자열로 연결할 수도 있는데, 맥과 윈도우가 디렉토리를 구분하는 기호가 다르기 때문에
join을 권장한다.
pathlib 모듈을 사용해서 path를 객체로 다루기
파일이 존재하는지 확인
Pickle
파이썬의 객체를 영속화 하는 built-in 객체. 데이터나 object등 실행중 정보를 저장하고 불러와서 사용할 수 있다. python 전용 binary 파일이라고 이해할 수 있다.
영속화는 파이썬에서 사용하는 객체를 파일로 저장해서 쓰는 것을 의미한다.
피클 파일 작성하기
binary 파일이므로 'w' 대신 'wb'를 붙여줬다.
피클 불러오기
Loggin Handling
프로그램이 실행되는 동안 일어나는 정보를 기록을 남기기
유저의 접근, 프로그램의 Exception, 특정 함수의 사용
Console 화면에 출력, 파일에 남기기, DB에 남기기 등등
기록된 로그를 분석하여 의미있는 결과를 도출 할 수 있음
실행시점에서 남겨야 하는 기록, 개발시점에서 남겨야하는 기록
logging 모듈
logging level
debug : 개발시 처리 기록을 남겨야하는 로그 정보를 남김
info : 처리가 진행되는 동안의 정보를 알림
warning : 사용자가 잘못 입력한 정보나 처리는 가능하나 원래 개발시 의도치 않는 정보가 들어왔을 때 알림
error : 잘못된 처리로 인해 에러가 났으나, 프로그램은 동작할 수 있음을 알림.
critical : 잘못된 처리로 데이터 손실이나 더 이상 프로그램이 동작할 수 없음을 알림
Logging formmater
Log의 결과값의 포맷을 지정해 줄 수 있음
프로그램 설정
무엇을?
데이터 파일 위치, 파일 저장 장소, Operation Type 등
어떻게?
configparser : 파일에
argparser : 실행 시점에
configparser
프로그램의 실행 설정을 file에 저장함
Section, Key, Value 값의 형태로 설정된 설정 파일을 사용
설정파일을 Dict Type으로 호출후 사용
argparser
Console 창에서 프로그램 실행시 Setting 정보를 저장함
거의 모든 Console 기반 Python 프로그램 기본으로 제공
특수 모듈도 많이 존재하지만(TF), 일반적으로 argparse를 사용
Command-Line Option 이라고 부름
Last updated
Was this helpful?