多文件系统

MultiFS是由一系列其他文件系统组成的文件系统,其中每个文件系统的目录结构覆盖序列中的先前文件系统。

这种文件系统的一个用途是选择性地覆盖一组文件,满足自定义的功能。 例如,创建一个可用于Web应用程序 theme 的文件系统。 我们从以下目录开始:

`-- templates
    |-- snippets
    |   `-- panel.html
    |-- index.html
    |-- profile.html
    `-- base.html

`-- theme
    |-- snippets
    |   |-- widget.html
    |   `-- extra.html
    |-- index.html
    `-- theme.html

我们想创建一个单独的文件系统,只有在 theme/ 中没有找到时,才会从 templates/ 加载一个文件。 我们可以这样做:

from fs.osfs import OSFS
from fs.multifs import MultiFS

theme_fs = MultiFS()
theme_fs.add_fs('templates', OSFS('templates'))
theme_fs.add_fs('theme', OSFS('theme'))

现在我们有一个 theme_fs 文件系统,它提供了两个目录的单一视图:

|-- snippets
|   |-- panel.html
|   |-- widget.html
|   `-- extra.html
|-- index.html
|-- profile.html
|-- base.html
`-- theme.html