Dbm
A database is a file for storing data.
import os
import dbm
DIR = os.path.dirname(os.path.realpath(__file__))
IMAGES_DB = DIR + "/db/images_db"
db = dbm.open(IMAGES_DB, 'c')
db['myimage.jpg'] = '/images/myimage.jpg'
db['myimage.png'] = '/images/myimage.png'
print(db['myimage.jpg'])
db.close()
db = dbm.open(IMAGES_DB)
for key in db.keys():
print(key, db[key])
db.close()
Pickle
With pickle module you can store any type.
import os
import dbm
import pickle
DIR = os.path.dirname(os.path.realpath(__file__))
IMAGES_DB = DIR + "/db/images_db_pickle"
db = dbm.open(IMAGES_DB, 'c')
t = [1, 2, 3]
str = pickle.dumps(t)
db['mylist'] = str
db.close()
db = dbm.open(IMAGES_DB, 'r')
b = db['mylist']
str = pickle.loads(b)
assert str == [1, 2, 3]
db.close()
t1 = (1, 2, 3)
str = pickle.dumps(t1)
t2 = pickle.loads(str)
assert t2 == (1, 2, 3)
assert t1 == t2
assert (t1 is t2) == False
import shelve
IMAGES_DB = DIR + "/db/images_db_shelf"
t = (1, 2, 3)
db = shelve.open(IMAGES_DB, 'c')
db['my_tuple'] = t
db.close()
db = shelve.open(IMAGES_DB, 'w')
assert db['my_tuple'] == (1, 2, 3)
db.close()