获取已打开货架的文件路径?

时间:2016-12-10 13:00:51

标签: python shelve

有没有办法找到已打开的搁架对象的路径和文件名?

我查看了搁置的文档,但我得到的印象是它更像是后端实现的包装器,我想并不是所有的后端都以某种方式查询它们正在使用的文件。

1 个答案:

答案 0 :(得分:1)

您可以获取文件名,但它没有记录,可以在任何python更新时中断:

>>> d=shelve.open("/some/datafile.shelve")
>>> d.dict._datfile
'/some/datafile.shelve.dat'

为什么你需要它?你打开货架时提供了文件名,所以你不能回头查看原始文件名吗? 如果你真的想要,你可以简单地将文件名存储在生成的shelve对象上。这样你就可以用你自己给它的名字来引用它,而不是依赖于实现的内部结构:

>>> filename = "/some/datafile.shelve"
>>> d=shelve.open(filename)
>>> d.original_filename = filename
>>> d
<shelve.DbfilenameShelf object at 0x035A6550>
>>> d.original_filename
'/some/datafile.shelve'
>>>

它不会自动了解&#34; .dat&#34;虽然附加了后缀。