ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python - Pickle
    Search: Python Python 2021. 4. 3. 10:43

    Python - Pickle

     

    파일 입출력

    일반 텍스트나 단일 변수를 파일로 저장하고 읽을 때는 기존 파일 입출력을 사용하면 된다.

    그러나 리스트같은 데이터객체를 파일로 입출력하려 할때 Pickle이 유용하다.

    >>>text = "my text"
    >>> with open('test.txt', 'w') as f:
            f.write(text)
    
    >>> cat test.txt
    my text
    >>> list = ['a', 'b', 'c']
    >>> with open('list.txt', 'w') as f:
    ...     f.write(list)
    
    TypeError: write() argument must be str, not list

     

    json과 차이점?
    json은 utf-8인코딩으로 텍스트 직렬화 방식이고, pickle은 바이너리 직렬화 형식이다.

     

    Pickle특징

    모든 파이썬 데이터 객체를 저장하고 읽을 수 있다.

    데이터를 저장하거나 불러올때는 파일을 바이트형식으로 읽거나 써야한다. (wb, rb)

    >>> import pickle
    >>> list = ['a', 'b', 'c']
    >>> with open('list.txt', 'wb') as f:
    ...     pickle.dump(list, f)
    >>>
    >>> with open('list.txt', 'rb') as f:
    ...     data = pickle.load(f) # 한줄씩 읽음
    
    >>> data
    ['a', 'b', 'c']

    한줄씩 파일을 읽어오고 더이상 로드할 데이터가 없으면 EOFError을 발생시킨다.

    with open('test.bin', 'rb') as file:
        list = []
    	while True:
       		try:
    			data = pickle.load(file)
    		except EOFError:
       			break
       	list.append(data)

     

    'Python' 카테고리의 다른 글

    Python imgaug  (0) 2021.04.04
    Python scikit-image  (0) 2021.04.04
    Python Print formatting  (0) 2021.04.03
    Python Matplotlib  (0) 2021.04.03
    Python pip 대상 라이브러리 버전 확인  (0) 2021.03.10
    Python pip 명령어  (0) 2021.03.10
    Python 저장소 악성 코드 발견  (0) 2021.03.05
    Python - Coroutine (Python 2.4)  (0) 2020.11.07

    댓글