我在 http://code.google.com/p/filecache/ 和Python 2将文件名I确认保存在shelve.open()但在Python 3中,我获得3个不同的文件“Bak”,“DAT”和“DIR”。所以在测试开始之前,我想删除这些文件,但我不知道我是否有文件名或扩展名。

如果我知道它的名字,我如何擦除搁置?

有帮助吗?

解决方案

您获得的哪个扩展依赖于使用哪些数据库后端。默认可能在Python 2和Python 3之间不同,但它也可能是您环境中可用的数据库接口之间的区别。

否则,除非您使用特定实现,即BSDDBShelf或DBFILENAMESHELF,否则您对扩展没有保证。您可以在quitpfile创建的临时目录中指定文件,然后删除何时目录。

其他提示

我使用shelve,因为tempfile和dict []对象无法涵固模块。如您所知,调用.clear()不清除磁盘上的持久对象上的内容,在退出后留下填充的R + W文件在磁盘上。(类似于使用缺款漏洞)您可以在使用时删除搁置:

import os
import shelve

shelve_name = 'shelve_name'
shelve_contents = shelve.open(shelve_name, flag='c', protocol=None, writeback=False)

shelve_file = (os.path.join(os.getcwd(), shelve_name))
os.remove(shelve_file)
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top