Python Shelve 모듈
Python 3 설명서에서 발췌
"선반 (shelf)"은 영구적인, 딕셔너리 같은 객체입니다. "dbm" 데이터베이스와의 차이점은 선반의 값 (키가 아님!) 은 본질적으로 임의의 Python 객체일 수 있다는 것입니다. 이는 pickle 모듈이 처리할 수 있는 모든 것입니다. 여기에는 대부분의 클래스 인스턴스, 재귀적 데이터 유형 및 많은 공유 하위 객체를 포함하는 객체가 포함됩니다. 키는 일반적인 문자열입니다.
변수 저장
import shelve
wife = ['Pretty', 'Lovely', 'Nice']
# 선반 파일을 열고 데이터 저장
with shelve.open('mydata') as shelf_file:
shelf_file['wife'] = wife
변수 열기 및 읽기
# 선반 파일을 열고 데이터 읽기
with shelve.open('mydata') as shelf_file:
print(type(shelf_file))
# 키로 저장된 값에 접근
print(shelf_file['wife'])
<class 'shelve.DbfilenameShelf'>
['Pretty', 'Lovely', 'Nice']
딕셔너리와 마찬가지로 shelf 값에는 선반의 키와 값 목록과 유사한 값을 반환하는 keys() 및 values() 메서드가 있습니다. 이 메서드들은 실제 리스트 대신 목록과 유사한 값을 반환하므로, 리스트 형태로 얻으려면 list() 함수에 전달해야 합니다.
# 선반의 모든 키와 값에 접근
with shelve.open('mydata') as shelf_file:
print(list(shelf_file.keys()))
print(list(shelf_file.values()))
['wife']
[['Pretty', 'Lovely', 'Nice']]