일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Sequential Model
- Filter
- 부스트캠프 aitech3기
- 부스트캠프aitech3기
- 자바스크립트
- 부스트캠프
- RNN
- JavaScript
- 생활코딩
- 정규표현식
- 베이즈통계학
- r
- Beyond Linear Neural Networks
- 네이버커넥트
- Multi-Layer Perceptron
- col_names
- mutate( )
- 네이버커넥트재단
- LinearNeuralNetwork
- dplyr
- aitech
- Convolution
- NomadCoder
- regex
- 모각공
- group_by( )
- regular expression
- convolution 역전파
- 역전파알고리즘
- summarise( )
- Today
- Total
clear_uncertainty
네이버 부스트캠프 모각공 3일차 - File/Exception/Log Handling 본문
네이버 부스트캠프 모각공 3일차 - File/Exception/Log Handling
SOidentitiy 2021. 11. 10. 23:13
모든 설명 및 자료의 출처는 네이버 부스트코스의 <[부스트캠프 AI Tech 3기] Pre-Course>입니다.
(https://www.boostcourse.org/onlyboostcampaitech3/joinLectures/329424)
<꼭 알아야 하는 파이썬 기초지식>
File/Exception/Log Handling
프로그램 사용할 때 일어나는 오류들
- 주소를 입력하지 않고 배송 요청
- 저장을 안했는데 컴퓨터 전원이 나감
- 게임 아이템을 샀는데 게임에서 튕김
>예상치 못한 많은 일(예외)들이 생김, 이러한 예외를 Exception이라고 합니다.
Exception
1) 예상 가능한 예외
2) 예상이 불가능한 예외
1) 예상 가능한 예외
- 발생 여부를 사전에 인지할 수 있는 예외
- 사용자의 잘못된 입력, 파일 호출시 파일 없음
- 개발자가 반드시 명시적으로 정의 해야함
2) 예상이 불가능한 예외
- 인터프리터 과정에서 발생하는 예외, 개발자 실수
- 리스트의 범위를 넘어가는 값 호출, 정수 0으로 나눔
- 수행 불가시 인터프리터가 자동 호출
-예외가 발생할 경우 후속 조치 등 대처 필요
Ex1) 없는 파일 호출 > 파일 없음을 알림
Ex2) 게임 이상 종료 > 게임 정보 저장
프로그램 = 제품, 모든 잘못된 상황에 대처가 필요
Exception Handling
try ~ except 문법
Built - in Exception : 기본적으로 제공하는 예외
raise 구문
-필요에 따라 강제로 Exception을 발생
assert 구문
-특정 조건에 만족하지 않을 경우 예외 발생
File handling
File system
OS에서 파일을 저장하는 트리구조 저장체계
파일의 기본 체계 - 파일 vs 디렉토리
디렉토리 (Directory)
-폴더 또는 디렉토리로 불림
-파일과 다른 디렉토리를 포함할 수 있음
파일 (File)
-컴퓨터에서 정보를 저장하는 논리적인 단위
-파일은 파일명과 확장자로 식별 (Ex) hello.py
-실행, 쓰기, 읽기 등을 할 수 있음
파일의 종류
기본적인 파일 종류로 text 파일과 binary 파일로 나뉨
컴퓨터는 text 파일을 처리하기 위해 binary 파일로 변환시킴 (Ex) pyc파일
모든 text 파일도 실제는 binary 파일
ASCII/Unicode 문자열 집합으로 저장되어 사람도 읽을 수 있음
Binary 파일은 어플리케이션에 귀속돼있음.
Python File I/O
Python File Read
with 구문은 with 구문 안에서만 open하고 close가 없어도 with 구문 밖에서는 열려있지 않습니다.
a 는 appending 의 약자입니다.
파이썬의 directory 다루기
cwd = current work directory
Log 파일 생성하기
Pickle
파이썬의 객체를 영속화(persistence)하는 built-in 객체
데이터, object 등 실행 중인 정보를 저장 -> 불러와서 사용
저장해야하는 정보, 계산 결과 등 활용이 많음
del test를 하여도
f = open("list.pickle", "rb")
test_pickle = pickle.load(f)
test_pickle
f.close()
test_pickle
# [1, 2, 3, 4, 5]
rb(read binary) 를 통해 열 수 있습니다. 이를 영속화라고 합니다.
import pickle
class Mutltiply(object):
def __init__(self, multiplier):
self.multiplier = multiplier
def multiply(self, number):
return number * self.multiplier
muliply = Mutltiply(5)
muliply.multiply(10)
# 50
f = open("multiply_object.pickle", "wb")
pickle.dump(muliply, f)
f.close()
del muliply
muliply
# NameError: name 'muliply' is not defined
f = open("multiply_object.pickle", "rb")
muliply_pickle = pickle.load(f)
muliply_pickle
#<__main__.Mutltiply at 0x1db60cdbe20>
multiply_pickle.multiply(100)
#500
위도 마찬가지로 del muliply를 통해 제거를 하여도 pickle의 rb를 통해 영속화가 된 것을 확인할 수 있습니다.
Logging Handling
로그 남기기 - Logging
-프로그램이 실행되는 동안 일어나는 정보를 기록 남기기
-유저의 접근, 프로그램의 Exception, 특정 함수의 사용을 기록
-Console 화면에 출력, 파일에 남기기, DB에 남기기 등등
-기록된 로그를 분석하여 의미있는 결과를 도출 할 수 있음
-실행시점에 남겨야 하는 기록, 개발시점에서 남겨야하는 기록을 나눔
print vs logging
-기록을 print로 남기는 것도 가능
-그러나 Console 창에만 남기는 기록은 분석시 사용 불가
-때로는 레벨별(개발, 운영)로 기록을 남길 필요가 있음
-모듈별로 별도의 logging을 남길 필요도 있음
-이러한 기능을 체계적으로 지원하는 모듈이 필요함
logging 모듈
통상 유저에겐 warning 부터 warning error critical 보임
logging level
-프로그램 진행 상황에 따라 다른 Level의 Log를 출력함
-개발시점, 운영 시점마다 다른 Log가 남을 수 있도록 지원함
-Debug > INFO > WARNING > ERROR > Critical
-Log 관리시 가장 기본이 되는 설정정보
실제 프로그램을 실행할 땐 여러 설정이 필요
1) configparser - 파일에
2) argparser - 실행시점에
configparser
프로그램의 실행 설정을 file에 저장함
Section, Key, Value 값의 형태로 설정된 설정 파일을 사용
설정파일을 Dict Type으로 호출 후 사용
argparser
- Console 창에서 프로그램 실행시 Setting 정보를 저장함
- 거의 모든 Console 기반 Python 프로그램 기본으로 제공
- 특수 모듈도 많이 존재하지만(TF), 일반적으로 argparse를 사용
- Command-Line Option 이라고 부름
'네이버 부스트캠프 - AI Tech 3rd > 꼭 알아야하는 파이썬 기초지식' 카테고리의 다른 글
네이버 부스트캠프 모각공 캠페인 6일차 - Pandas (0) | 2021.11.14 |
---|---|
네이버 부스트캠프 모각공 캠페인 5일차 - Numerical Python - numpy (0) | 2021.11.12 |
네이버 부스트캠프 모각공 4일차 - Python Data Handling (0) | 2021.11.11 |
네이버 부스트캠프 모각공 캠페인 3일차 - Module and Project (0) | 2021.11.10 |
네이버 부스트캠프 모각공 캠페인 2일차 - Python Object-Oriented Programming (0) | 2021.11.09 |