예외 처리
- 오류는 프로그램이 잘못 작동되는 것을 막기 위한 파이썬의 처리
- 이 오류를 회피하기 위한 동작을 예외 처리라 한다.
: 오류의 회피 - try, execpt
try:
# Do Something
except:
# Do Something when Error occured
파일입출력
파일 입출력 개요 : 파일의 생성과 파일 모드
파일객체 = open({파일명}, {파일모드}[, encoding='인코딩'])
파일 모드 | 설명 |
r (default) | 읽기 모드 - 파일을 읽기만 할 때 사용 |
w | 쓰기 모드 - 파일에 내용을 기록할 때 사용 |
a | 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용 |
파일 모드 | 설명 |
t (default) | 텍스트 모드 |
b | 바이너리 모드 |
: 파일 제어 기본 함수
함수명 | 설명 |
open | 파일을 생성한다 |
write | 파일에 내용을 기록한다 |
read | 파일에서 내용을 읽어온다 |
close | 파일 사용을 끝낸다. 파일을 열었으면(open) 반드시 사용 후 닫아주도록 한다. |
: readline 함수를 이용한 텍스트 파일 읽기
- readline 함수를 이용하면 텍스트 파일을 줄 단위로 읽어올 수 있다
- readlines 함수를 이용하면 모든 라인을 불러 리스트로 제공한다
: 바이너리(Binary) 파일 다루기
- 바이너리 파일을 다루려면 모드를 바이너리로 지정해야 한다
: 그 외 파일 관련 함수
함수명 | 설명 |
seek | 사용자가 원하는 위치로 파일 포인터 이동 |
tell | 현재 파일에서 어디까지 읽고 썼는지 위치를 반환 |
: with ~ as - 자동 자원 정리
with ~ as 를 이용, 파일 입출력을 수행하면 수동으로 파일을 close 하지 않아도 된다
Using Pickle
● 객체의 내용을 파일에 저장하거나 복원해야 할 경우에 Pickle 모듈을 사용하면 편리
● Pickle 모듈은 객체를 파일에 썼다가 나중에 복원할 수 있도록 객체를 바이트 스트림으로 직렬화
- 모든 파이썬의 객체를 저장하고 읽을 수 있음
- 원하는 객체를 형태 변환 없이 쉽게 쓰고 읽을 수 있다
● Pickle 모듈을 사용하려면 import pickle 을 이용, 모듈을 로드해야 한다
● Pickle 모듈 주요 메서드
메서드 | 설명 |
dump(data, file [, protocol]) | data 객체를 [protocol 을 이용해] file에 저장 |
load(file) | File로 부터 저장된 객체를 불러옴 |
: 객체의 저장 : Pickling - dump
- file에 객체를 저장하고자 할 때에는 dump 메서드를 이용한다
- dump 메서드에 프로토콜 버전을 정의해 줄 수 있다.
: 객체의 복원 : Unpickling - load
- file에 객체로부터 객체를 불러올 때에는 load 메서드를 이용한다.
- dump시에 PROTOCOL을 지정했다 하더라도 load할 때는 지정해주지 않아도 된다.
- pickle 파일에 PROTOCOL 버전이 저장되어 있음
: 복수 객체의 저장
- 기본적으로 Pickle은 단일 객체를 저장하는 포맷이지만, dump 메서드를 중복하여 사용하면 복수 개의 객체를 저장할 수 있다.
: 복수 객체의 복원
- 저장된 객체를 복원하려면 load 메서드를 이용
- load가 수행될 때마다 한줄씩 불러들이며 더 이상 불러올 객체가 없을 때 EOFError 발생
Pickle 사용시 유의사항
- Pickle은 단순 텍스트 저장이 아닌 바이트 스트림 직렬화를 이용한 것이므로 파일 모드는 반드시 "b" 모드 (wb/rb) 로 지정해야 한다.
- Pickle에 사용되는 데이터 포맷은 파이썬에 특화되어 있기 때문에 다른 언어로 자성된 응용프로그램과의 데이터 교환에는 사용하지 않는 것이 좋다
- 저장된 데이터에 대한 보안을 제공하지 않는 점에 유의하여 사용
JSON, CSV
TODO : 내용 정리
http://pythonstudy.xyz/python/article/205-JSON- %EB%8D%B0%EC%9D%B4%ED%83%80
http://pythonstudy.xyz/python/article/207-CSV-%ED%8C%8C%EC%9D%BC- %EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
'딥러닝 기반 영상인식 개발 전문가 과정 > C언어, Python, 자료구조' 카테고리의 다른 글
7월22일 파이썬 코드 (0) | 2019.07.22 |
---|---|
7월22일 파이썬 날짜와 시간, 모듈, 클래스 (0) | 2019.07.22 |
7월19일 파이썬 예제 코드 (0) | 2019.07.19 |
7월 19일 파이썬 순차 자료형(Sequence) 내장 함수, 객체, 함수 (0) | 2019.07.19 |
7월18일 파이썬 예제 코드들 (0) | 2019.07.18 |