Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

예제로 파이썬 피클링 이해하기

<시간/>

이 기사에서는 Python에서 다양한 데이터 유형을 피클링하는 방법을 배웁니다. 부울, 정수, 부동 소수점, 복소수, 문자열, 튜플, 목록, 집합 및 선택 가능한 개체를 포함하는 사전을 피클할 수 있습니다. 제너레이터, 내부 로컬 클래스, 람다 함수와 같은 일부 엔터티는 피클할 수 없습니다.

절임이란 무엇입니까?

피클링에는 객체 유형 및 관련 구조의 Python 엔터티를 직렬화 및 역직렬화하는 연속 주기가 포함되며, 이를 마샬링 또는 평면화라고도 합니다. 여기에는 메모리에 있는 객체를 디스크에 저장하거나 전송할 수 있는 바이트 형태로 변환하는 작업이 포함됩니다. 로컬 네트워크로 이동합니다.

사용상의 제약은 무엇입니까?

다른 프로그래밍 언어를 사용하여 데이터를 공유하려는 경우 피클 모듈을 사용하는 것은 바람직하지 않습니다. 즉, 플랫폼 간 호환성이 보장되지 않습니다.

피클링은 파일 처리 없이 원시 데이터에 대해 수행할 수 있습니다. 이 모듈에서는 직렬화 프로세스를 통해 원시 데이터를 바이너리 파일로 피클링하는 방법을 배웁니다.

# Python pickling
import pickle as pk
def learnData():
   # data to be stored in database
   dict_1 = {'tutorial':'point','Python':'3.x'}
   dict_2 = {'Data
structure':'dictionary','pickling':'serialization'}
   # database
   db = {}
   db['1'] = dict_1
   db['2'] = dict_2
   # binary file open using filepointer in append mode
   fp = open('Newfile', 'ab')
   # source, destination
   pk.dump(db, fp)
   fp.close()
def displayData():
   # binary file open using filepointer in read mode
   fp = open('Newfile', 'rb')
   db = pk.load(fp)
   for i in db:
      print(i, '=>', db[i])
   fp.close()
if __name__ == '__main__':
   learnData()
   displayData()

출력

dict_1 = {'tutorial':'point','Python':'3.x'}
dict_2 = {'Data structure':'dictionary','pickling':'serialization'}

결론

이 기사에서는 Python 3.x에서 피클 및 피클 해제하는 방법을 배웠습니다. 또는 내장 피클 모듈을 사용하는 이전 버전입니다.