예외 처리

  • 오류는 프로그램이 잘못 작동되는 것을 막기 위한 파이썬의 처리
  • 이 오류를 회피하기 위한 동작을 예외 처리라 한다.

 

: 오류의 회피 - 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

 

+ Recent posts