exception & logging & file_handing

이상민·2023년 3월 7일
0
post-custom-banner

1. Exception_handilng

파이썬에서 예회 처리하는 법

  • try ~ except 문법
try:
 <예외 발생 가능 코드>
except < exception type>
	예외 발생시 대응하는 코드
for i in range(10):
    try:
    	print(10/i)
    except ZeroDivisionError: #0으로 숫자를 나눌때 실행
    	print("Not divided by 0")

파이썬 bulit in Exception

  • raise 구문: 필요에 따라 강제로 Exception 발생
    raise <Exception>("출력문")
while True:
    value = input("변환할 정수 값을 입력해주세요: ")
    for digit in value:
        if digit not in "0123456789":
            raise ValueError("숫자 값을 입력하지 않았습니다.")
    print("정수값으로 변환된 숫자: ",int(value))
  • assert 구문: 조건에 따라 Exception 발생
def get_bibary_number(decimal_number):
    assert isinstance(decimal_number,int) #false이면 프로그램 종료
    return bin(decimal_number)
print(get_bibary_number(10))
print(get_bibary_number("a"))

2. Logging

프로그램이 실행 되는 동안 일어나는 정보 기록을 남기는것, 기록된 로그를 분석하여 의미 있는 결과를 도출할 수 있음

  • print vs logging
기록을 print를 이용해 콘솔에 남기는 것도 가능 하다. 
그러나 콘솔 창에만 남기는 기록은 분석시 사용 불가능하기 때문에 기록을 남길 필요가 있음.
  • logging level
logging.debug("틀렸잖아")#개발시 처리 기록을 남겨야하는 정보
logging.info("확인해")#처리가 진행괴는 동안의 정보
logging.warning("조심해")#사용자가 의도치 않은 정보를 입력할때
logging.error("에러났어")#잘못된 처리로 인한 에러(프로그램 동작 가능)
logging.critical("망했다") # 잘못된 처리로 데이터 손실이나 프로그램 동작 불가를 알림

3. file_handling

파일: 컴퓨터에서 정보를 저장하느 논리적인 단위, 실행/쓰기/읽기 등을 할 수 있음
디렉토리: 폴더 또는 디렉토리로 불림,폴더 또는 파일을 포함할 수 있음

  • 파일의 종류
    파일은 text 파일 과 binary 파일로 나눔
binary fileText file
- 컴퓨터만 이해할수 있는 이진법으로 저장된 파일- 인간도 이해할 수 있는 문자열 형식
- 일반적으로 메모장으로 열면 깨져 보임- 메모장으로 열면 내용 확인 가능
- 엑셀,위드 파일 등- 프로그램 코드, 텍스트 파일, html 파일
  • 파이썬 file read
line_counter = 0 #파일의 총 줄 수를 세는 변수
data_header = [] #data의 필드값(feature)을 저장하는 list
customer_list = [] #customer 개별 list를 저장하는 list

with open("customers.csv") as customer_data: #customer.csv 파일을 customer_data객체에 저장
    while True:
        data = customer_data.readline() #customer.csv에 한줄씩 data변수에 저장
        if not data: break
        if line_counter == 0:
            data_header = data.split(",")
        else:
            customer_list.append(data.split(","))
        line_counter += 1
  • pickle
    메모리에 있는 파이썬의 객체를 영속화하는 built_in 객체,데이터/object 등실행중 정보를 저장,계산해야하는 정보 계산결과(모델)등 많이 활용
import pickle
#저장
f = open("list.pickle",'wb') #list.pickle파일을 쓰기 목적으로 생성
test = [1,2,3,4,5] #데이터 생성
pickle.dump(test,f) # 데이터를 저장
f.close()

#불러오기
f = open("list.pickle","rb")
test_pickle = pickle.load(f)
print(test_pickle)
f.close()

pickle을 이용하면 데이터 뿐만 아니라 객체도 저장할 수 있다

class Add():
    def __init__(self,adder):
        self.adder = adder
    def add(self,number):
        return number + self.adder
adder = Add(10)
adder.add(14)

f = open("add_object.pickle","wb")
pickle.dump(adder,f)
f.close()

f = open("add_object.pickle","rb")
a = pickle.load(f)
a.add(5)
profile
잘하자
post-custom-banner

0개의 댓글