일부 소규모 Python 애플리케이션에서는 관계형 데이터베이스가 필요하지 않은 경우 영구 사전을 사용하여 이름/값 쌍을 저장할 수 있습니다. 이는 Python 사전과 매우 유사합니다. 디스크에 기록되었습니다. 또 다른 차이점은 dbm 키와 값이 문자열 형식이어야 한다는 점입니다.
1. dbm 모듈 선택
Python은 많은 dbm 모듈을 지원하지만, 안타깝게도 각 dbm 모듈에서 생성된 파일은 호환되지 않습니다.
다음 표에는 이러한 모듈이 나열되어 있습니다.
모듈 설명
dbm 최상의 dbm 모듈 선택
dbm.dumb dbm 라이브러리 이식 가능한 구현
dbm.gnu는 GNU dbm 라이브러리를 사용합니다
일반적으로 dbm 라이브러리에 특별한 고급 기능이 없으면 dbm 모듈을 사용합니다.
2. 영구 사전 만들기
import dbm db = dbm.open('Bookmark', 'c') #添加选项 db['MyBlog'] = 'jonathanlife.sinaapp.com' print(db['MyBlog']) #保存,关闭 db.close()
open 함수에는 dbm을 여는 세 가지 방법이 있습니다.
플래그 사용
C 파일을 열고 읽기 쓰기, 필요하면 파일 생성
W 읽기용 파일 열기 및 쓰기, 파일이 없으면 생성되지 않음
N 읽기용 파일 열기 쓰기는 가능하지만 항상 새 파일을 생성합니다. 빈 파일
은 모드를 나타내는 또 다른 선택적 매개변수를 전달할 수도 있습니다. 이 매개변수는 UNIX 파일 권한 세트를 저장합니다. 여기에 자세히 설명되어 있습니다.
3. 영속 사전에 접근합니다
open 함수에서 반환된 객체는 사전 객체로 간주됩니다. 값에 대한 액세스 방법은 다음과 같습니다.
db[‘key’] = ‘value’ value = db[‘key’] #删除值: del db[‘key’] #遍历所有key: for key in db.keys(): #your code here
코드 예:
import dbm #open existing file db = dbm.open('websites', 'w') #add item db['first_data'] = 'Hello world' #verify the previous item remains if db['first_data'] != None: print('the data exists') else: print('Missing item') #iterate over the keys, may be slow for key in db.keys(): print("Key=",key," value=",db[key]) #delete item del db['first_data'] #close and save to disk db.close()