Mount Filesystem

A Mount FS is a virtual filesystem which can seamlessly map sub-directories on to other filesystems.

For example, lets say we have two filesystems containing config files and resources respectively:

[config_fs]
|-- config.cfg
`-- defaults.cfg

[resources_fs]
|-- images
|   |-- logo.jpg
|   `-- photo.jpg
`-- data.dat

We can combine these filesystems in to a single filesystem with the following code:

from fs.mountfs import MountFS
combined_fs = MountFS()
combined_fs.mount('config', config_fs)
combined_fs.mount('resources', resources_fs)

This will create a filesystem where paths under config/ map to config_fs, and paths under resources/ map to resources_fs:

[combined_fs]
|-- config
|   |-- config.cfg
|   `-- defaults.cfg
`-- resources
    |-- images
    |   |-- logo.jpg
    |   `-- photo.jpg
    `-- data.dat

Now both filesystems may be accessed with the same path structure:

print(combined_fs.gettext('/config/defaults.cfg'))
read_jpg(combined_fs.open('/resources/images/logo.jpg', 'rb')
exception fs.mountfs.MountError

Thrown when mounts conflict.

class fs.mountfs.MountFS(auto_close=True)

A virtual filesystem that maps directories on to other file-systems.

Parameters:auto_close (bool) – If True, the child filesystems will be closed when the MountFS is closed.
mount(path, fs)

Mounts a host FS object on a given path.

Parameters:
  • path (str) – A path within the MountFS.
  • fs (FS) – A filesystem object to mount.