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

2024-06-02 09:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用PyFilesystem。我正在测试的代码使用open_fs(file_url)创建一个默认文件系统。当我测试这段代码时,我现在可以传入mem://filepath/filename,使用内存文件系统运行测试。你知道吗

不过,为了进行测试,我需要用测试文件填充内存文件系统。我有没有办法在文件系统上强制执行全局单一操作?我希望当open_fs在我不控制的代码中运行时,它将打开我以前创建的文件系统,并将其作为测试文件的种子。你知道吗


Tags: 文件内存代码urlopenfilename全局mem
1条回答
网友
1楼 · 发布于 2024-06-02 09:02:28

我是作者。简而言之,答案是,对于内存文件系统,一旦关闭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对象,这是我通常的建议。你知道吗

相关问题 更多 >