为了账号安全,请及时绑定邮箱和手机立即绑定

PyFilesystem 可以强制使文件系统成为单例吗?

PyFilesystem 可以强制使文件系统成为单例吗?

MMTTMM 2021-11-30 19:23:28
我正在使用PyFilesystem。我正在测试的代码使用open_fs(file_url). 当我测试这段代码时,我现在可以传入mem://filepath/filename以使用内存文件系统运行测试。但是为了测试,我需要用我的测试文件填充内存文件系统。有没有办法让我在文件系统上强制使用全局单音?我希望当open_fs在我无法控制的代码中运行时,它会打开我之前创建并用我的测试文件播种的相同文件系统。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

PyFilesystem 作者在这里。简短的回答是否定的,在内存文件系统的情况下,一旦关闭 FS 对象,内存就会被丢弃。只有底层存储机制是持久的,文件系统才会持久。


稍微长一点的答案是您可以使用 TempFS 的子目录来创建持久文件系统。


# Create a temporary filesystem at module scope

temp_fs = open_fs('temp://')


# Acquire new persistent temporary directory

# (this is just a path you can pass to open_fs)

# If you open this multiple times, the data will persist

new_dir = temp_fs.makedir('foo').getsyspath()


# Close temporary filesystem, to delete all directories

temp_fs.close()

这应该给你你描述的语义。


如果您正在使用的项目正在使用 FS url 打开和关闭文件系统,并且仍然期望数据在那里,那么它将与不受持久存储支持的文件系统中断。也许您可以向作者建议,只要需要,他们就可以保留 FS 对象,这是我通常建议的。


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信