반응형
pickle
패키지는 Python 객체를 파일에 저장하거나 파일에서 읽어오는 데 사용됩니다. pickle
은 객체를 바이트 스트림으로 직렬화(serialize)하고, 다시 원래의 객체로 역직렬화(deserialize)할 수 있습니다.
pickle
을 사용한 파일 쓰기 (저장)
객체를 파일에 저장하려면 pickle
의 dump()
메서드를 사용합니다. 이 메서드는 지정된 파일에 객체를 직렬화하여 저장합니다.
import pickle
# 예제 데이터: 딕셔너리 객체
data = {'name': 'Alice', 'age': 30, 'is_student': False}
# 데이터를 저장할 파일 열기 (쓰기 모드)
with open('data.pickle', 'wb') as file:
pickle.dump(data, file)
여기서 중요한 점은 파일을 열 때 모드가 'wb'
(바이너리 쓰기 모드)로 지정된다는 것입니다. pickle
은 바이너리 데이터를 다루기 때문에, 파일 모드를 'wb'
로 설정해야 합니다.
pickle
을 사용한 파일 읽기 (로드)
파일에서 저장된 객체를 읽어오려면 pickle
의 load()
메서드를 사용합니다. 이 메서드는 지정된 파일에서 객체를 역직렬화하여 불러옵니다.
import pickle
# 데이터를 읽을 파일 열기 (읽기 모드)
with open('data.pickle', 'rb') as file:
loaded_data = pickle.load(file)
print(loaded_data)
여기서도 파일을 열 때 모드가 'rb'
(바이너리 읽기 모드)로 설정된 것을 볼 수 있습니다.
실행 예제
위의 코드들을 실행해 보면, 처음에는 객체 data
가 data.pickle
파일에 저장되고, 이후에 이 파일에서 데이터를 읽어 loaded_data
변수에 할당됩니다. 출력은 다음과 같습니다:
{'name': 'Alice', 'age': 30, 'is_student': False}
이처럼 pickle
은 Python의 기본 데이터 구조와 객체들을 손쉽게 파일로 저장하고 다시 불러오는 기능을 제공합니다.
주의 사항
- 보안: 신뢰할 수 없는 소스에서
pickle
파일을 불러오면 안 됩니다.pickle
은 임의의 코드 실행이 가능하므로, 악의적인 코드가 포함될 수 있습니다. - 호환성:
pickle
로 저장된 파일은 Python 버전 간에 호환성 문제가 있을 수 있습니다. 따라서 저장과 읽기를 동일한 Python 버전에서 하는 것이 가장 안전합니다.
이제 pickle
패키지를 사용하여 객체를 파일로 저장하고 다시 불러오는 방법을 알게 되었습니다. 이 방법을 활용하면 복잡한 데이터 구조를 쉽게 저장하고 복원할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 클래스의 선행 참조 문제 분서과 해결 방법 (0) | 2024.08.13 |
---|---|
[ Python ] 클래스 변수와 인스턴스 변수에 대해서 알아보기 (0) | 2024.08.13 |
[ Python ] struct를 사용해서 little/big endian으로 파일 읽고 쓰기 (0) | 2024.08.13 |
[ Python ] struct 패키지로 바이너리 데이터 다루기 (0) | 2024.08.12 |
[ Python ] 파일 읽고 쓰기 함수 설명과 예제 (0) | 2024.08.07 |