본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210504_객체 단위 파일 입/출력

by 케리's 2021. 5. 5.

* 객체 단위 파일 입출력을 구현할 수 있다.
* 예외처리를 구현하고 적용할 수 있다.



바이너리 타입 (2진화 = stream 파일 입출력

 

  파일을 열어서 1바이트씩 데이터를 읽어서 화면에 hex(16진수) 코드로 출력하는 방법을 말한다.
  형식은 open(file, mode) rb, wbmode를 지정한다.


→ 영숫자 + 특수문자 => 1byte => stream
1byte = unicode 2byte = utf-8 3byte = utf-16

 

 

 

 

 

 

 


메서드를 선언하는 방법 

 

  추상화, overlode, overloding

 

overloding 기능을 가진 메소드 :

  메소드 이름은 동일한데 () 매개인자의 개수를 타입을 다르게 지정해서 호출하도록 선언하는 방법

class bytes(object)
  | bytes(iterable_of_ints) bytes
  | bytes(string, encoding [, errors]) bytes
  | bytes(bytes_or_buffer) immutable copy of bytes_or_buffer
  | bytes(int) bytes object of size given by the parameter initialized with null bytes
  | bytes() empty bytes object

 


파이썬을 실행하는 시스템이 사용하는 기본 인코딩을 리턴하는 메서드


  : import sys = sys.getdefaultencoding()



객체 단위 파일 입출력 :

  지속 모듈 중의 하나로 파이썬 객체를 저장하는 모듈을 말한다.


1. DBM 관련 모듈: anydbm, dbm, gdbm, dbhash, dumbdbm 등 시스템에 따라서 관련된 모듈 dict
2.  marshal 모듈 : 파이썬의 객체를 이진 포맷으로 저장 (재귀적인 dict, list객체 불가)
                        . pyc 파일의 컴파일된 코드를 쓰고 읽어 들이는 데 사용된다.
3. shelve 모듈 dict형식으로 데이터를 접근하는 dbm모듈 중 anydbm과 동일하지만 임의 파이썬 객체가 value로 사용할 수 있다. 내부에서 dict형 인터페이스를 위해 anydbm모듈을 사용하고 객체 저장을 위해 cPickle 모듈을 이용한다.

 

 


from pickle import Pickler, Unpicker


pickle 

 

파이썬에서 개체를 파일에 저장한다는 의미를 가진다.
객체 상태를 저장  이진 파일로 변환 저장  전달  복원


장점 :

 

  파이썬 기본 객체 및 사용자 클래스를 저장한다.
  서로 참조되는 객체까지의 관계도 저장한다.
  재귀적인 관계도 처리된다.
  디버깅을 설계하고 문제가 생겼을 때 텍스트 에디터로 복구를 쉽게 할 수 있다.

 

단점 :

 

  파일의 용량이 크다.
  처리 속도가 느리다.
  cPickle : Pickle의 단점을 보안한 모듈
  3.4 ver 이후 윈도cPicklepickle로 변환

 

 

순서 :

 

  1. import pickle or cPickle
  2. dump(object, file)를 이용해서 파일로 객체를 출력한다.
     dumps(object) string : 문자열로 객체를 출력한다.
  3. load(file) object : 파일에서 객체를 리턴 받는다.     loads(bytes) object : 문자열에서 객체를 리턴 받는다.

 

 

'|Playdata_study > Python' 카테고리의 다른 글

210507_모듈 활용 및 csv  (0) 2021.05.07
210506_예외처리  (0) 2021.05.06
210503_OS모듈  (0) 2021.05.03
210429_클래스4  (0) 2021.04.30
210428_클래스3  (0) 2021.04.28

댓글