[AI 기초다지기] File / Exception / Log Handling

이희진·2023년 2월 3일
0

프로그램을 제대로 만들기 위해서 알아야 하는 삼총사!

Exception

  • 예상 가능한 예외: 발생 여부를 사전에 프로그래머가 알 수 있는 것 -> 명시적으로 처리한다. (사용자가 주소를 입력하지 않는다면?, 주소를 입력하는 곳에 전화번호를 입력한다면?)
  • 예상 불가능한 예외: 인터프리터 과정에서 발생하는 예외로 개발자 실수라고 할 수 있다.

예외 처리 (exception handling)

  1. 없는 파일을 호출할 경우 -> 파일 없음을 알림
  2. 게임 이상 종료할 경우 -> 게임 정보를 저장한다.
    예외 처리는 명시적으로 for문으로도 가능하지만 파이썬에서는 exception 발생을 이용하여 처리하는 exception handling을 권장한다.

assert 구문

보통 함수 내에서 많이 쓰는 것으로, assert 이름(조건) 의 형식이다.
example

def get_binary_number(decimal_number : int):
	assert isinstance(decimal_number, int)
    return bin(decimal_number)

print(get_binary_number(10,0))

-->
조건에 true에 해당하게 되면 AssertionError 발생함

예악어

File

text 파일과 binary 파일


기본적인 파일 종류로 text 파일과 binary 파일이 있는데,
컴퓨터는 text 파일을 처리하기 위해 binary 파일로 변환시킨다.
즉, 모든 text 파일도 실제는 binary 이다.

Python File I/O

파이썬은 파일 처리를 위해 "open" 키워드를 사용하며, 접근 모드를 선택한다.
접근 모드 - r(읽기모드), w(쓰기모드), a(추가모드)

f = open("<file_name>", "접근 모드")
f.close()

<예시>

f = open("test_file.txt", "r")
contents = f.read()
print(contents)
f.close()

# with 구문과 함께 사용하기
with open("test_file.txt", "r") as my_file:
	contents = my_file.read()
    print(type(contents), contents)

파일 handling

파일이 존재하는지 확인 -> import os

경로 확인

import pathlib
cwd = pathlib.Path.cwd()
# cwd = 현재 경로
# cwd.parnet = 부모 경로
  • pickle이란? python에 특화된 binary 파일이라고 할 수 있다.

Logging

로깅이란?

프로그램이 실행되는 동안에 일어나는 정보들을 기록으로 남기는 것이다.
유저의 접근, 프로그램의 예외, 특정 함수 사용 등의 정보를
console에 출력하거나 파일, DB에 남기는 방법으로 기록한다.

기록된 로그를 분석하여 의미있는 결과를 도출할 수 있고
실행 시점&개발 시점마다 남겨야 하는 기록이 다르다.

방법 1 - 단순 print

단순히 print 문을 통해서 console 창에만 남기는 기록은 분석할 때 사용할 수 없다.
하지만 콘솔 창 기록은 지워지기 때문에 분석할 수 없어서 레벨별(개발&운영)로 기록을 남길 필요가 있다.
모듈 별로 별도의 logging을 지원하는 모듈을 보통 사용한다.

방법 2 - python의 기본 log 관리 모듈

import logging 하여 사용한다.

실제 프로그램을 실행할 때 필요한 설정들

configparser
프로그램의 실행 설정을 file에 저장한다.
selection, key, value 값의 형태로 설정된 설정 파일을 dict type으로 호출 후 사용

argparser
콘솔 창에서 프로그램 실행 시 setting 정보를 저장한다.

0개의 댓글