这是一个问题:
import time
import dumbdbm
db = dumbdbm.open('db.db', 'c')
# modify the persistent dict / "DB" here
db['foo'] = 'bar'
db.sync()
while True:
# doing other things, sometimes modifying the db + syncing with .sync()
time.sleep(1)
并在休眠时间内用 CTRL + C 打破程序,即dumbdbm
将无法正常关闭 ?
dumbdbm.sync()是否足以保证数据的安全性,或者.close()
绝对是强制性的?
答案 0 :(得分:1)
当documentation implies同步调用该方法同步磁盘上的目录和数据文件时,它就足够了。
但是,我认为更好的方法是在退出之前关闭文件。如果你总是退出Ctrl-C
,你可以通过注册SIGINT
的信号处理程序(这是Ctrl-C
发送的信号)来实现这一点。)这个信号处理程序应该同步,关闭DB,然后调用exit()。