예외 처리와 파일 다루기, 로그 데이터 남기기
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
등등
f = open("<파일 이름>","접근 모드")
f.close()
f.read()
파일 전체를 가져옴
f.readlines()
한줄씩 전체를 list형태로 가져옴
f.readline()
한줄씩 가져옴
파일 접근 모드 | 설명 |
---|---|
r | 읽기모드 - 읽기만 |
w | 쓰기모드 - 내용을 수정할 때 |
a | 추가모드 - 마지막에 새로운 내용 추가 |
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
파이썬의 객체를 영속화(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 level
debug
> info
> warning
> error
> critical
👉 참고
데이터 파일의 위치, 저장 장소, operation type 등
[section]을 나누어 key : value
형태로 구성
.cfg
파일
콘솔 창에서 프로그램 실행 시 setting 정보 저장
[부스트캠프 AI Tech] Week 1 - Day 3