我有一个python3脚本,使用shelve模块创建多个数据库文件.仅供参考,shelve模块包装dbm模块,如shelve source code所示.tamard.open()方法用于在光盘上创建数据库文件,并将所需的输出文件路径作为参数.但是,创建的文件的名称取决于用户系统上的可用dbm模块.这意味着该行为不是平台无关的,如SO:here中其他地方所述.
我一直无法找到一种简单的方法来收集文件名.我希望我可以访问文件名作为货架对象的属性,例如可以使用FileIO class’s name attribute来完成.如何通过对象属性或方法获取货架对象的文件名?
如果做不到这一点,我可以尝试将自毁的tempfile对象传递给shelve.open()调用.但是我不清楚如何实现这一目标.
请注意,SO here上已询问临时货架问题…但如果用户所在的系统具有将附加fname后缀的dbm模块,则所提供的答案将不起作用.
感谢您的时间.
解决方法:
我刚刚找到了this的答案,建议在临时子目录中创建搁置文件,然后删除整个目录.我认为这是目前最好的解决方案.