DBM模块中有一个命令可以删除存储在密钥中的值。
del d[key] # delete data stored at key (raises KeyError # if no such key)
但是我甚至无法使用此命令进行迭代,因为发生了运行时错误。(运行时错误:字典在迭代期间改变了大小。)
import dbm
db=dbm.open("file.db","c")
for key in db:
del db[key]
print(len(db))
db.close()
是否有一种有效的方法可以立即清空DMB文件? 我使用的是Python 3.3
答案 0 :(得分:2)
for key in list(db):
del db[key]
应该有用。
编辑:如果目标只是完全清空数据库,您也可以关闭数据库并使用dbm.open('filename', 'n')
重新打开它。 'n'
标志表示“始终创建一个新的空数据库,打开以供阅读和写入”;它似乎覆盖了以前存在的任何文件。