[Python] File & Exception & Log handling

Jeonghyun·2022년 9월 21일
0

Python 이론

목록 보기
5/9

예외 처리와 파일 다루기, 로그 데이터 남기기

Exception 예외

1) 예상 가능한 것 : 사전에 인지 가능, 사용자의 잘못된 입력
2) 예상이 불가능한 것 : 인터프리터 과정에서의 실수, 리스트의 범위를 넘어가는 값

보통 if문으로 예외 처리하지만 예상이 불가능한 경우 파이썬의 기능 exception handling

try - except 문법
try:
	예외발생가능코드
except <Exception Type>:
  	예외 발생시 대응하는 코드
ex) 0으로 숫자를 나눌 떄 예외처리
  for i in range(10):
  	try:
  		print(10/i)
  	except ZeroDivisionError:   # 빌트인 파이썬 모듈
  		print("not divided by 0")
  	except Exception as e:     # 나머지 예외 처리, 원인을 알 수 없으므로 권장 x
  		print(e)

IndexError NameError ZeroDivisionError ValueError FileNotFoundError 등등

File Handling

파일 I/O

f = open("<파일 이름>","접근 모드")
f.close()
f.read() 파일 전체를 가져옴
f.readlines() 한줄씩 전체를 list형태로 가져옴
f.readline() 한줄씩 가져옴

파일 접근 모드설명
r읽기모드 - 읽기만
w쓰기모드 - 내용을 수정할 때
a추가모드 - 마지막에 새로운 내용 추가

os 모듈

import os
os.mkdir("newdir") # 새 폴더
os.path.isdir("dir") # 디렉토리가 있는지 확인
os.path.exists("dir")
os.path.join("dir", "1.txt") # 폴더에 파일을 이동
shutil.copy(source, dest) # 파일 복사 함수

import pathlib
cwd = pathlib.Path.cwd() # 현재 디렉토리
cwd.parent # 부모 디렉토리
cwd.parent.parent

pickle

파이썬의 객체를 영속화(persistence)
객체를 파일로 저장하고 불러올 수 있음

import pickle
f = open("list.pickle","wb")
test = [1,2,3]
pickle.dump(test, f) # test 객체를 f에 저장
f.close()

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

Logging

프로그램이 실행되는 동안 일어나는 정보를 기록에 남기기
실행시점에 남기는 로그 / 개발시점에 남기는 로그

logging level

debug > info > warning > error > critical

👉 참고

사전 설정

데이터 파일의 위치, 저장 장소, operation type 등

  • configparser -> 파일에 저장
  • argparser -> 실행 시점에 저장

configparser

[section]을 나누어 key : value 형태로 구성

.cfg파일

argparser

콘솔 창에서 프로그램 실행 시 setting 정보 저장





[부스트캠프 AI Tech] Week 1 - Day 3

0개의 댓글