코드 여행 일기

파이썬 pickle 라이브러리: 객체 직렬화와 역직렬화 본문

Python

파이썬 pickle 라이브러리: 객체 직렬화와 역직렬화

할짝개발자 2024. 1. 16. 02:55
728x90
반응형

 

 

 

안녕하세요! 이번에는 파이썬에서 제공하는 pickle 라이브러리에 대해 알아보겠습니다.

pickle 라이브러리는 파이썬 객체를 직렬화하고 역직렬화하는데 사용되며,

객체를 파일에 저장하거나 네트워크를 통해 전송할 때 유용하게 활용됩니다.

아래 예제를 통해 pickle의 기본적인 사용법을 살펴보겠습니다.

 


 

 

1. 객체를 파일에 저장하기 (직렬화)

 

import pickle

# 저장할 객체
data_to_pickle = {"name": "John", "age": 30, "city": "New York"}

# 파일에 객체 저장
with open("data.pkl", "wb") as file:
    pickle.dump(data_to_pickle, file)

 

 

2. 파일에서 객체 불러오기 (역직렬화)

 

import pickle

# 파일에서 객체 불러오기
with open("data.pkl", "rb") as file:
    loaded_data = pickle.load(file)

# 불러온 객체 출력
print(loaded_data)

 

 

3. 리스트 혹은 클래스 객체도 저장 및 불러오기

 

import pickle

# 리스트 객체 저장
list_to_pickle = [1, 2, 3, 4, 5]
with open("list_data.pkl", "wb") as file:
    pickle.dump(list_to_pickle, file)

# 클래스 객체 저장
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person_to_pickle = Person("Alice", 25)
with open("person_data.pkl", "wb") as file:
    pickle.dump(person_to_pickle, file)

# 리스트 객체 불러오기
with open("list_data.pkl", "rb") as file:
    loaded_list = pickle.load(file)

# 클래스 객체 불러오기
with open("person_data.pkl", "rb") as file:
    loaded_person = pickle.load(file)

# 불러온 객체 출력
print(loaded_list)
print(loaded_person.name, loaded_person.age)

 

 

 

4. pickle 라이브러리의 활용

 

  • 객체 직렬화: dump 메서드를 사용하여 파이썬 객체를 직렬화하고 파일에 저장할 수 있습니다.
  • 객체 역직렬화: load 메서드를 사용하여 파일에서 저장된 직렬화된 객체를 읽어올 수 있습니다.
  • 리스트와 클래스 객체 저장 및 불러오기: 다양한 종류의 객체를 저장하고 불러올 수 있습니다.

 


 

 

pickle은 파이썬 객체를 바이트 형태로 변환하여 파일에 저장하고, 필요할 때 다시 읽어와서 사용할 수 있게 해줍니다.

주의해야 할 점은 pickle을 사용할 때는 안전한 소스에서만 사용해야하며, 신

뢰할 수 없는 소스에서 온 데이터를 역직렬화하면 보안 상의 위험이 발생할 수 있습니다.

계속해서 파이썬의 다양한 라이브러리를 탐험해보세요!

728x90
반응형