如何强制python使用dumbdbm模块创建新数据库?

搁置模块在anydbm模块的顶部实现.此模块充当4种不同特定DBM实现的外观,它将按以下顺序选择创建新数据库时可用的第一个模块:

> dbhash
(已弃用但仍是第一个anydbm选项).这是bsddb模块的代理,.open()实际上是bsddb.hashopen()
> gdbm,用于GNU DBM库的Python模块,提供比dbm模块在与同一个库一起使用时提供的更多功能.
> dbm,一个代理模块,使用ndbm,BSD DB和GNU DBM库(在编译Python时选择).
> dumbdbm,一个纯python实现.

但是在我的系统中,虽然由于某些原因我有dbhash,但我希望它只使用dumbdbm创建数据库.

我怎样才能做到这一点?

解决方法:

您无法控制shelve.open使用的db模块,但有一些解决方法.

最好的方法是自己创建数据库并手动将其传递给the Shelf constructor,而不是调用shelve.open:

db = dumbdbm.open('mydb')
shelf = shelve.Shelf(db)

第一个参数是提供类似dict的接口的任何对象,它可以存储字符串,这正是任何* dbm对象所在的.

上一篇:Python学习之路--序列化模块


下一篇:如何删除python 3中的3个搁置文件?