Module (96%)
Section (67%)

Using shelve is quite easy and intuitive.

First, let's import the appropriate module and create an object representing a file-based database:

import shelve my_shelve = shelve.open('first_shelve.shlv', flag='w')

The meaning of the optional flag parameter:

ValueMeaning
'r'Open existing database for reading only
'w'Open existing database for reading and writing
'c'Open database for reading and writing, creating it if it doesn’t exist (this is a default value)
'n'Always create a new, empty database, open for reading and writing

Now our shelve object is ready for action, so let's insert a few items and close the shelve object.

my_shelve['USD'] = {'code':'US dollar', 'symbol': '$'} my_shelve['JPY'] = {'code':'Japanese yen', 'symbol': '¥'} my_shelve.close()

Now let's open the shelve file to demonstrate direct access to the elements (contrary to the sequential access to items when we use pickles).

new_shelve = shelve.open(shelve_name) print(new_shelve['USD']) new_shelve.close()

The final code is presented in the right pane.


Code

import shelve

shelve_name = 'first_shelve.shlv'

my_shelve = shelve.open(shelve_name, flag='c')
my_shelve['EUR'] = {'code':'Euro', 'symbol': '€'}
my_shelve['GBP'] = {'code':'Pounds sterling', 'symbol': '£'}
my_shelve['USD'] = {'code':'US dollar', 'symbol': '$'}
my_shelve['JPY'] = {'code':'Japanese yen', 'symbol': '¥'}
my_shelve.close()

new_shelve = shelve.open(shelve_name)
print(new_shelve['USD'])
new_shelve.close()
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×