1

DBM 模块中有一个命令可以删除键中存储的值。

del d[key]      # delete data stored at key (raises KeyError   # if no such key)

但是我什至无法使用此命令进行迭代,因为发生了运行时错误。(RuntimeError:迭代期间字典更改了大小。)

import dbm
db=dbm.open("file.db","c")
for key in db:
    del db[key]
print(len(db))
db.close()

有没有一种有效的方法来一次清空 DMB 文件?我正在使用 Python 3.3

4

1 回答 1

2
for key in list(db):
    del db[key]

应该管用。

编辑:如果目标只是完全清空数据库,您也可以关闭数据库并使用dbm.open('filename', 'n'). 该'n'标志的意思是“始终创建一个新的、空的数据库,打开以供读写”;它似乎覆盖了任何先前存在的文件。

于 2013-05-20T12:41:36.733 回答