[AI] Pickle File(.pkl) 이란?

아현·2024년 10월 7일
0

AI

목록 보기
3/29

출처


1. Pickle File 이란?


  • Pickle은 Python에서 객체를 직렬화(serialize)하고 역직렬화(deserialize)할 수 있게 해주는 모듈입니다.

    • 직렬화(serialize): Python 객체를 바이트 스트림으로 변환하는 과정이고

    • 역직렬화(deserialize): 이 바이트 스트림을 다시 원래의 Python 객체로 복원하는 과정

이를 통해 Python 객체를 파일로 저장하거나 네트워크를 통해 전달할 수 있습니다.



2. Pickle 사용하기


1) 객체를 파일로 직렬화하여 저장하기 (Pickling)


# 직렬화할 객체 (예: 딕셔너리)
data = {'name': 'Alice', 'age': 25, 'city': 'Wonderland'}

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



2) 파일에서 객체를 역직렬화하여 로드하기 (Unpickling)


# 파일에서 객체 로드하기
with open('data.pkl', 'rb') as file:
    loaded_data = pickle.load(file)

print(loaded_data)



Pickle의 주요 함수


  • pickle.dump(obj, file): 객체 obj를 파일 객체 file에 저장합니다.

  • pickle.load(file): 파일 객체 file에서 객체를 읽어서 반환합니다.

  • pickle.dumps(obj): 객체 obj를 바이트 스트림으로 변환합니다. (파일에 저장하지 않고 메모리에 저장할 때 유용)

  • pickle.loads(bytes_obj): 바이트 스트림 bytes_obj를 객체로 변환합니다.



주의사항


  • pickle을 사용할 때는 신뢰할 수 없는 소스에서 제공된 데이터를 역직렬화하는 것을 피해야 합니다. 공격자가 악의적인 코드를 삽입할 수 있기 때문입니다.

  • pickle은 Python 객체에만 사용 가능하며, 언어나 플랫폼 간 호환성이 없습니다.



profile
For the sake of someone who studies computer science

1개의 댓글

comment-user-thumbnail
2024년 11월 29일

감사합니다

답글 달기